我很想了解保存.gif或.jpg(使用下面的代码似乎工作得很好)之间的区别,但如果我将其更改为.png
则不起作用因此,此代码适用于.jpg或.gif图像(以.jpg或.gif结尾的链接)
$img = "http://www.anylocation.com/image.gif";
$ch = curl_init($img);
$fp = fopen($currentdir . 'image.gif', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
echo "<b>Image stored...<br>";
但如果我这样做:
$img = "http://www.anylocation.com/image.png";
$ch = curl_init($img);
$fp = fopen($currentdir . 'image.png', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
echo "<b>Image stored...<br>";
它不会保存图像,它会尝试,但它只会写入0字节大小而没有内容的image.png。
理想情况下,我想修改上面的代码,以便它适用于任何场景或图像类型。如果没有,并且代码必须与.png不同,我可以写'检查$ img的扩展名'并将其指向正确的代码段。
任何人都可以帮助解释为什么这不适用于.png,如果可能的话,我可以进行任何改变以使其有效吗?
答案 0 :(得分:1)
您的代码可以缩减为......
$img = "http://www.anylocation.com/image.png";
file_put_contents($currentdir . 'image.png', file_get_contents($img));