我对PHP的file_get_contents
有一个奇怪的问题。
过去,远程文件上的file_get_contents
将返回该文件的文本,而不管返回的HTTP代码如何。如果我命中了一个API,并返回状态为500的JSON错误信息,file_get_contents
将给出该JSON (没有发现错误代码的迹象)。
我刚刚设置了一个Ubuntu10.04服务器,这是第一个使用PHP5.3的Ubuntu。PHP没有给我JSON,而是在出现500错误时抛出一个警告。因此,我无法解析JSON并给出一个很好的错误消息。
PHP注意到远程文件中有一个错误是很好的,但是我甚至需要这个JSON (特别是!)如果有500个错误。似乎没有任何方法来关掉它。有人遇到过这种情况吗?有小费吗?
发布于 2010-05-05 08:02:57
您可以告诉PHP在使用file_get_contents
时忽略流错误,方法是提供一个适当的流上下文(使用stream_context_create
),并将ignore_errors
选项设置为true
。
$context = stream_context_create(array('http'=>array('ignore_errors'=>true)));
$contents = file_get_contents($url, FALSE, $context);
您还可以查看$http_response_header
的响应头,包括状态代码。
https://stackoverflow.com/questions/2774575
复制相似问题