我正在使用facebook图形API和cURL来保存图像。
API提供的图像的一些网址很好并且与下面的代码完美配合,但其他网址不是实际的图像文件,例如
所以以下内容不起作用,因为我收到的回复是html ...
$url = "https://scontent.xx.fbcdn.net/hphotos-xat1/v/t1.0-9/10173560_10154038367445545_5235985017751927246_n.jpg?oh=dea01d8125a54a6bbcba7d5fe5fb795c&oe=564C01E1";
$local_file = $UploadDirectory.$NewFileName;
$remote_file = $url;
$ch = curl_init();
$fp = fopen ($local_file, 'w+');
$ch = curl_init($remote_file);
curl_setopt($ch, CURLOPT_TIMEOUT, 50);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_REFERER, "http://www.google.com");
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_exec($ch);
curl_close($ch);
fclose($fp);
我问了一个类似的问题here,但这实际上只回答了图像发生的问题。
编辑:这个问题与引用的问题不同,因为在这里我要求实际从网址获取图像,而在另一个问题中,我不确定为什么我没有看到图像保存。
我现在有一个答案,我认为可以帮助其他人,我会删除下面的内容,如果重新打开则将其添加为答案。
file_put_contents("image.jpg", file_get_contents("https://scontent.xx.fbcdn.net/hphotos-xaf1/v/t1.0-9/522827_10152235166655545_26514444_n.jpg?oh=1d52a86082c7904da8f12920e28d3687&oe=5659D5BB"));