下载PHP中URL的内容,即使它返回404
我想使用PHP下载URL的内容,即使HTTP响应代码是404下载PHP中URL的内容,即使它返回404,php,http-status-code-404,Php,Http Status Code 404,我想使用PHP下载URL的内容,即使HTTP响应代码是404file\u get\u contents将出错,我无法使用谷歌找到答案。如何执行此操作?默认情况下仅返回HTTP 200响应的内容 从PHP5.0开始,您还可以为文件获取内容指定一个上下文,这样您就不必依赖url(参见Gordon的答案)。改用。它允许更大的控制,并允许您读取检索到的任何内容和状态代码。您必须忽略错误: 忽略\u错误布尔值即使在出现故障状态代码时也会获取内容。默认值为FALSE 换言之,你要做什么 echo file
file\u get\u contents
将出错,我无法使用谷歌找到答案。如何执行此操作?默认情况下仅返回HTTP 200响应的内容
从PHP5.0开始,您还可以为文件获取内容
指定一个上下文,这样您就不必依赖url(参见Gordon的答案)。改用。它允许更大的控制,并允许您读取检索到的任何内容和状态代码。您必须忽略错误:
忽略\u错误布尔值
即使在出现故障状态代码时也会获取内容。默认值为FALSE
换言之,你要做什么
echo file_get_contents(
'http://stackoverflow.com/foo/bar',
false,
stream_context_create([
'http' => [
'ignore_errors' => true,
],
])
);
您将获得404页面
如果希望这是HTTP流的默认行为,请使用
stream_context_set_default(
array('http' => array(
'ignore_errors' => true)
)
);
使用HTTP流包装器的任何调用都将使用这些设置,例如,您只需
echo file_get_contents('http://stackoverflow.com/foo/bar');
如果你还想得到那份工作,那就去做吧
电话之后。每次调用后,使用http流包装器(重新)填充变量。步骤1:检查返回代码:
$content=file\u get\u contents(“网站链接”);
如果($content==FALSE){//handleerror here…}
步骤2:通过将错误控制操作符(即
@
)放在对file_get_contents()的调用前面来抑制警告:$content=@file_get_contents($site)代码>有趣的方法-但是你能告诉我你是得到了一个错误还是一个成功的响应吗?+1 Gordon是对的,变量$http\u response\u头包含了它在tin上所说的内容,其中显然包含了状态代码。
print_r($http_response_header);