PHP - 解析XML,获取图像的URL并下载它

时间:2013-08-18 10:19:40

标签: php xml curl xml-parsing download

我有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可以实现,但我不知道如何使用它。谢谢你。

1 个答案:

答案 0 :(得分: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));

确保网址带有正确的语法。