你好,我正在尝试创建一个应用程序,该应用程序在其中使用用户的个人资料图片。因此,我编写了一段代码,从 Facebook 读取个人资料图片并将其保存在我的服务器上。我使用以下代码:
function GetImageFromUrl($link){
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch,CURLOPT_URL,$link);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result=curl_exec($ch);
curl_close($ch);
return $result;
}
$userpicpath = "http://graph.facebook.com/$uid/picture?type=normal";
$sourcecode = GetImageFromUrl($userpicpath);
$savefile = fopen("$uid-normal.jpg", "w"); //this is name of new file that i save
fwrite($savefile, $sourcecode);
fclose($savefile);
这里的$uid是用户的ID。
上面的代码不能正常工作。
但是,当我在浏览器中复制$userpicpath(即http://graph.facebook.com/$uid/picture?type=normal)并按回车键时,它会在地址栏中返回新的图像路径,并显示我想要的正确图像。如果我将这个新路径传递给我的函数,它会保存我想要的图像文件。
为什么会出现这种情况?我如何获取第二个图像路径并在程序中将其传递给我的函数?请帮帮我。
谢谢。
Location:
头不是响应的最后一行(完全可能),那么这个解决方案将非常脆弱。更好的方法是让CURL库正确解析头文件,正如下面所提到的,它甚至可以为您跟随重定向。 - IMSoP