使用PHP从URL复制图像

时间:2014-07-26 09:15:05

标签: php image url

我想使用PHP将图像从网址复制到我的服务器 我看到了这个答案Saving image from PHP URL
并尝试了这个:

<?php

$url = 'https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xap1/v/t1.0-1/p200x200/548412_147785902099377_260065314_n.jpg?oh=5c97dcd58931398e501666daee4c4ae8&oe=5457AC73&__gda__=1414911437_494ad1af138ee7670f89f4a6ba8b6d06';
$img = 'flower.jpg';
copy($url, $img);

?>

但我收到以下错误:

failed to open stream: No connection could be made because the target machine actively refused it.

我的php版本是5.4,在我的php.ini allow_url_fopen=On
我找不到如何解决这个问题,任何聪明的建议?

3 个答案:

答案 0 :(得分:0)

我可以在命令行使用普通curl抓住它:

curl "https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xap1/v/t1.0-1/p200x200/548412_147785902099377_260065314_n.jpg?oh=5c97dcd58931398e501666daee4c4ae8&oe=5457AC73&__gda__=1414911437_494ad1af138ee7670f89f4a6ba8b6d06" > bill.jpg

也许你可以使用php system来做到这一点?

答案 1 :(得分:0)

在代码

下使用file_put_contents而不是copy.use
file_put_contents($img, file_get_contents($url));

答案 2 :(得分:0)

如何使用curl,然后可以直接写入文件。

<?php
$url = 'https://fbcdn-profile-a.akamaihd.net/hprofile-ak-xap1/v/t1.0-1/p200x200/548412_147785902099377_260065314_n.jpg?oh=5c97dcd58931398e501666daee4c4ae8&oe=5457AC73&__gda__=1414911437_494ad1af138ee7670f89f4a6ba8b6d06';

$fp = fopen ('./flower.jpg', 'w+');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, 'YourBot.0.1');
curl_setopt($ch, CURLOPT_FILE, $fp); // write curl response to file
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  false); //required!
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,  false); //required!
curl_exec($ch);
curl_close($ch);
fclose($fp);
?>