我尝试从我的 facebook 页面获取内容,如下所示:
echo file_get_contents("http://www.facebook.com/dma.y");
问题是它没有给我页面,而是将我重定向到另一个页面,说我需要升级我的浏览器。然后我想使用 curl 并通过发送带有一些标头的请求来获取它。
echo get_follow_url('http://www.facebook.com/dma.y');
function get_follow_url($url){
// must set $url first. Duh...
$http = curl_init($url);
curl_setopt($http, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($http, CURLOPT_HTTPHEADER, get_headers('http://google.com'));
// do your curl thing here
$result = curl_exec($http);
if(curl_errno($http)){
echo "<br/>An error has been thrown!<br/>";
exit();
}
$http_status = curl_getinfo($http, CURLINFO_HTTP_CODE);
curl_close($http);
return $http_status;
}
仍然没有运气。我应该返回一个状态码响应,它是 404 或 200 .. 取决于我是否登录到 Facebook。但它返回 301,因为它将我的请求标识为不是常规浏览器请求。那么我在 curl 选项设置中缺少什么?
更新 我实际上想要做的是复制这个功能:
脚本会根据返回的状态码触发 onload 或 onerror 函数。
该代码将检索页面。但是,该 javascript 方法很笨拙,并且在某些浏览器(如 firefox)中会中断。因为它不是 javascript 文件。