正如您在代码中看到的,我正在尝试执行 FQL 查询并检索结果。我生成的查询完全没问题,因为我已经通过浏览器对其进行了测试。我首先使用 file_get_contents() 来检索网页,但它让我遇到了 400 错误请求错误。有人建议改为使用 cURL。
下面给出的代码段给了我$query 的错误。如果我取消注释 urlencode() 行,脚本会继续运行并达到最大执行时间限制。我究竟做错了什么?
$limit = $start + 100;
$query = "select post_id, created_time, actor_id, message, attachment, comments, likes, type from stream where source_id = $id limit $start, ". $limit;
$url = "https://graph.facebook.com/fql?q=$query&access_token=$token";
//$url = urlencode($url);
echo $url.'<br>';
$curl_handle=curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);
curl_setopt($curl_handle, CURLOPT_CONNECTTIMEOUT, 2);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl_handle, CURLOPT_PROXY, "tcp://10.3.3.3:8080");
curl_setopt($curl_handle, CURLOPT_USERAGENT, 'Hi!');
$query = curl_exec($curl_handle);
var_dump($query);
curl_close($curl_handle);
编辑:访问另一个 URL,file_get_contents 给了我这个错误“无法打开流:无法通过代理连接到 HTTPS 服务器”。由于这也是 HTTPS,cURL 也可能面临同样的问题。我认为这可能会导致答案。