Php 文件获取内容是否会正常失败?

Php 文件获取内容是否会正常失败?,php,file-get-contents,Php,File Get Contents,我需要具有容错能力,例如,如果馈送到它的$url返回一个404,在它发出警告之前告诉我。可以做到这一点吗?任何使用HTTP包装器访问远程文件(就好像它是本地文件一样)的函数都会自动生成一个在本地范围内命名的本地变量。您可以访问该变量以查找有关调用fopen,文件获取内容时发生的情况的信息。。。在远程文件上 您可以使用@:@file\u get\u contents抑制警告 如果您不关心错误是什么,可以使用@file\u get\u contents并将结果与false进行比较: $content

我需要具有容错能力,例如,如果馈送到它的
$url
返回一个404,在它发出警告之前告诉我。可以做到这一点吗?

任何使用HTTP包装器访问远程文件(就好像它是本地文件一样)的函数都会自动生成一个在本地范围内命名的本地变量。您可以访问该变量以查找有关调用
fopen
文件获取内容时发生的情况的信息。。。在远程文件上

您可以使用
@
@file\u get\u contents
抑制警告

如果您不关心错误是什么,可以使用
@file\u get\u contents
并将结果与
false
进行比较:

$content = @file_get_contents(url);
if ($content === false) { /* failure */ } else { /* success */ }

例如,你可以先做一个额外的(HEAD)请求来找出答案

$response = get_headers($url);
if($response[1] === 'HTTP/1.1 200 OK') {
    $content = file_get_contents($url);
}
或者,您可以通过修改流上下文告诉
file\u get\u contents
忽略任何错误并强制获取
$url
的结果:

echo file_get_contents(
    'http://www.example.com/foo.html',
    FALSE,
    stream_context_create(array('http'=>array('ignore_errors' => TRUE)))
)