无法使用PHP从远程服务器保存图像

无法使用PHP从远程服务器保存图像,php,Php,好的,。。。这是指: 这是我的密码: for ($i = 0; $i < count($json_post['Category']); ++$i ) { echo $json_post['Category'][$i]['CategoryID'] . '<br />'; echo $json_post['Category'][$i]['Name'] . '<br />'; echo $json_post['Category'][$i]['Ima

好的,。。。这是指:

这是我的密码:

for ($i = 0; $i < count($json_post['Category']); ++$i )
{
    echo $json_post['Category'][$i]['CategoryID'] . '<br />';
    echo $json_post['Category'][$i]['Name'] . '<br />';
    echo $json_post['Category'][$i]['Image'] . '<br />';
    $image_URL = "https://$_SSActiveWear_BaseURL/" . $json_post['Category'][$i]['Image'];
    echo $image_URL . "<br /><br />";
    copy("https://$_SSActiveWear_BaseURL/$image_URL", $_SERVER['DOCUMENT_ROOT']."/tmp/" . basename($image_URL));
    die;
}
for($i=0;$i;
echo$json_post['Category'][$i]['Name'].
; echo$json_post['Category'][$i]['Image'].
; $image\u URL=“https://$\u ssactivewer\u BaseURL/”$json\u post['Category'][$i]['image']; echo$image_URL.“

”; 复制(“https://$\u SSActiveWear\u BaseURL/$image\u URL”,$\u服务器['DOCUMENT\u ROOT'].”/tmp/“.basename($image\u URL)); 死亡 }
我试过卷曲,结果也一样

正在发生的是,正在创建文件,但文件长度都是58k,当我试图打开一个文件查看时,无法打开。事实上,它是我试图从服务器保存图像的索引页面的HTML内容

编辑1 如果我硬编码要保存的图像而不是使用变量,它会保存正确的图像。

解决了这个问题

是否进行了以下更改:

copy($image_URL, $_SERVER['DOCUMENT_ROOT']."/tmp/" . basename($image_URL));

我不明白为什么在使用单个变量时(如本例中),它会起作用,而在使用复合语句时则不会起作用。

这是因为您的URL被解释错误。始终在字符串中的变量周围使用
{}

copy("https://$_SSActiveWear_BaseURL/$image_URL", $_SERVER['DOCUMENT_ROOT']."/tmp/" . basename($image_URL));
转换为
copy(“https://SSActiveWear_BaseUrl/_URL“,…)
。如您所见,PHP没有找到变量
$\ucode>和
$image
,而是为它们应用
null

正确语法:

copy("https://{$_SSActiveWear_BaseURL}/{$image_URL}", "{$_SERVER['DOCUMENT_ROOT']}/tmp/".basename($image_URL));

$\u SSActiveWear\u BaseURL
的值是多少?还有,图像的实际路径是什么?哦。。。。泰。。。这就可以解释了。我是一名C#程序员,现在正在学习PHP。