cee*_*yoz 3 php file-get-contents
PHP有一个奇怪的问题file_get_contents.
过去,file_get_contents无论返回的HTTP状态代码如何,在远程文件上都会返回该文件的文本.如果我点击API并且它发回状态为500的JSON错误信息,则file_get_contents给我JSON(没有迹象表明遇到了错误代码).
我刚刚建立了一个Ubuntu 10.04服务器,这是第一个拥有PHP 5.3的Ubuntu.当出现500错误时,PHP会抛出警告,而不是给我JSON.因此,我无法解析JSON并提供一个很好的错误消息.
很高兴PHP注意到远程文件中存在错误,但是如果出现500错误,我甚至需要 JSON(特别是!).似乎没有办法将其关闭.有没有遇到过这个?有小费吗?
file_get_contents通过提供适当的流上下文(使用stream_context_create)并将ignore_errors选项设置为,可以告诉PHP在使用时忽略流错误true.
$context = stream_context_create(array('http'=>array('ignore_errors'=>true)));
$contents = file_get_contents($url, FALSE, $context);
Run Code Online (Sandbox Code Playgroud)
您还可以查看$http_response_header响应标头,包括状态代码.