【发布时间】:2018-02-20 15:42:41
【问题描述】:
我正在尝试使用 xml 文件将远程图片复制到本地文件夹中。 XML 文件在下面;
<?xml version="1.0" encoding="UTF-8"?>
<items>
<item>
<image>
http://www.example.com/image.jpg,
https://www.example.com/image2.jpg
</image>
</item>
</items>
使用html表单上传文件后。我将图像插入到一个数组中,然后在 foreach 循环中使用该数组使用 php 复制功能从远程 url 复制到本地文件夹。代码如下:
$xml = simplexml_load_file($_FILES['file']['tmp_name']) or die("Error: Cannot create object");
foreach ($xml->children() as $row) {
$images = explode(',', $row->images);
foreach ($images as $image) {
copy($image, 'images/properties/'.$property_id.'/'.uniqid().'.jpg');
}
}
使用上面的代码不起作用,但如果我在复制功能中对图像进行硬编码,图像就会被复制。见下面的代码;
<?php
$images = explode(',', $row->images);
foreach ($images as $image) {
copy('https://www.example.com/image2.jpg', 'images/properties/'.$property_id.'/'.uniqid().'.jpg');
}
?>
所以问题是复制功能不适用于变量。我也尝试将变量用单引号和双引号括起来,但仍然没有用。
谁能告诉我为什么?
【问题讨论】:
-
贴出解析XML文档并初始化
$images的代码。从SimpleXMLElement中提取的项目并不是它们看起来的样子。 -
更新了帖子
-
$row中没有images。 -
如果我在使用 explode 后回显 $images,则会显示图像 url。
-
@axiac 你说得对!你可以做一个anwser,如果你愿意,我会删除我的。 Dalyan,你在用户名前面加上
@,如果没有,他们不会得到你的评论。