3

我对 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(尤其是!)。似乎没有任何方法可以将其关闭。有没有人遇到过这个?有小费吗?

4

1 回答 1

8

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);

您还可以查看$http_response_header响应标头,包括状态代码。

于 2010-05-05T16:02:57.530 回答