将.gif和.png文件保存到磁盘

时间:2016-02-03 18:48:04

标签: php

我很想了解保存.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,如果可能的话,我可以进行任何改变以使其有效吗?

1 个答案:

答案 0 :(得分:1)

您的代码可以缩减为......

$img = "http://www.anylocation.com/image.png";
file_put_contents($currentdir . 'image.png', file_get_contents($img));