php copy()不能使用特定的url链接
问题描述:
我想复制另一台服务器的图像,但它不起作用,我不知道为什么。这里是我的代码:php copy()不能使用特定的url链接
if(copy('http://demo.swyp.fr/mod_traffiq/thumb/LQ1009C/LQ143559C/LQ157553C-71x100.jpg', 'zzz.jpg')) {
echo "Copy success!";
}else{
echo "Copy failed.";
}
它总是返回失败。
答
您正在使用copy
函数。尽管此方法适用于远程数据源和目的地,但我们鼓励您使用file_put/get_contents
-方法(请参阅下面的文档引用)。
$image = file_get_contents('http://demo.swyp.fr/mod_traffiq/thumb/LQ1009C/LQ143559C/LQ157553C-71x100.jpg');
file_put_contents('zzz.jpg', $image);
从file_get_contents
文档:
file_get_contents()函数是要读取的文件的内容转换成字符串的首选方式。如果您的操作系统支持,它将使用内存映射技术来提高性能。
还要注意:
的URL可以,如果fopen封装已启用作为具有这种功能的文件名。
但是,如果你的设置fopen
远程URL未打开,则可能是卷曲测试:
$ch = curl_init('http://demo.swyp.fr/mod_traffiq/thumb/LQ1009C/LQ143559C/LQ157553C-71x100.jpg');
$fp = fopen('zzz.jpg', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
有可能是其他PHP设置(或服务器配置),这将禁用所有的这些代码运行中的片段。如果这不起作用,那么这是一个配置问题。
我照你说的做,但复制的图像是空的:( –
@MInhNHat你是否看到笔记,这要求你打开fopen,如果你的服务器禁用了这个功能,那么下载远程文件是不可能的。检查你的'phpinfo()'中的值。 – OptimusCrime
*复制函数只适用于本地文件* - 我认为这不是真的,它使用与'file_get_contents'相同的包装。 – iainn