【问题标题】:PHP - Parse XML, get an image's URL and download it [duplicate]PHP - 解析 XML,获取图像的 URL 并下载它[重复]
【发布时间】:2013-08-18 10:19:39
【问题描述】:

我有一个包含以下内容的 xml 文件:

<?xml version="1.0" encoding="utf-8"?>

<SHOP>
    <SHOPITEM>
        <PRODUCT>Toy</PRODUCT>
        <DESCRIPTION>Toy description.</DESCRIPTION>
        <URL>http://www.hracky-matyland.cz/product/hracky-pro-nejmensi/jezek-na-baterie/4</URL>
        <IMGURL>http://www.hracky-matyland.cz/product_images/temp/jezek.jpg</IMGURL>
        <PRICE>74</PRICE>
        <PRICE_VAT>89</PRICE_VAT>
        <DUES>0</DUES>
        <AVAILABILITY>0</AVAILABILITY>
    </SHOPITEM>
</SHOP>

我想从 IMGURL 标签中获取图像并下载它。当然,我在 xml 中有更多的产品。我需要它的原因是客户正在移动到我的网络并希望所有产品都移动到。最好的办法是,如果我可以将每个图像下载到名称为 PRODUCT 标签的文件夹中,那么每个产品都会有自己的包含图像的文件夹。我知道 cURL 可以做到这一点,但我不知道如何使用它。提前谢谢。

【问题讨论】:

  • 这是一个非常笼统的问题,我有一个更具体的问题。我不需要只提取信息,而是将图像下载到文件夹中。

标签: php xml curl xml-parsing download


【解决方案1】:
$data = <<<XML
<?xml version='1.0' standalone='yes'?>
<SHOP>
    <SHOPITEM>
        <PRODUCT>Toy</PRODUCT>
        <DESCRIPTION>Toy description.</DESCRIPTION>
        <URL>http://www.hracky-matyland.cz/product/hracky-pro-nejmensi/jezek-na-baterie/4</URL>
        <IMGURL>http://www.hracky-matyland.cz/product_images/temp/jezek.jpg</IMGURL>
        <PRICE>74</PRICE>
        <PRICE_VAT>89</PRICE_VAT>
        <DUES>0</DUES>
        <AVAILABILITY>0</AVAILABILITY>
    </SHOPITEM>
</SHOP>
XML;

$source = new SimpleXMLElement($data);
echo $source->SHOPITEM[0]->IMGURL;

$data 包含 XML 数据。

如果你想搜索正确的条目,你应该使用DOM / DOMXpath:http://www.php.net/manual/en/class.domxpath.php

对于下载,您可以使用 cUrl 或简单地使用 file_get_contents:

file_put_contents ( 'localfile.jpg', file_get_contents($source->SHOPITEM[0]->IMGURL));

确保 URL 具有正确的语法。

【讨论】:

  • 好的,现在我会得到类似“example.com/product_images/temp/toy.jpg”的东西,我该如何下载呢?
  • 通过 file_get_contents 或 cURL 下载。例如 file_put_contents('local.jpg', file_get_contents('example.com/remote.jpg');
猜你喜欢
  • 2023-04-05
  • 2015-04-16
  • 2016-03-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多