如果使用file_get_contents()连接到Facebook,
$response = file_get_contents("https://graph.facebook.com/...?access_token=***");
echo "Response: ($response)\n";
服务器返回非正常HTTP状态,PHP提供一般错误响应,并禁止响应。返回的身体是空的。
file_get_contents(...): failed to open stream: HTTP/1.0 400 Bad Request
Response: ()
但是如果我们使用cURL,我们会看到Facebook实际上会返回一个有用的响应主体:
{"error":{"message":"An active access...","type":"OAuthException","code":2500}}
如何使file_get_contents()返回响应主体而不管HTTP错误?
答案 0 :(得分:8)
您必须使用stream_context_create()
:
$ctx = stream_context_create(array(
'http' => array (
'ignore_errors' => TRUE
)
));
file_get_contents($url, FALSE, $ctx);
答案 1 :(得分:1)
您可以忽略错误file_get_contents throws
$opts = array(
'http'=>array(
'ignore_errors'=> true,
)
);
$context = stream_context_create($opts);
$file = file_get_contents('https://graph.facebook.com/...?access_token=***', false, $context);
var_dump($file);