我使用fopen从URL打开提要(.txt文件),但有时找不到提要。我希望fopen在发生这种情况时返回FALSE,这样我就可以处理错误。但是,当在目标URL上找不到提要时,我将被重定向到站点上的另一个页面,通知我没有找到指定的文件。结果是,我的$句柄指向了错误的文件,而fopen返回TRUE(因为它找到了——某些东西——尽管是错误的东西),从而破坏了我对错误处理的尝试。
我如何验证fopen是否获得了正确的文件?谢谢。
if ($handle = fopen($feed, "r")) {
//fopen returned true, do stuff
} else {
//fopen returned false, quit
die("Fail.");
}
您可以通过以下方式让http包装器忽略重定向:
$opts = array(
'http' => array('method' => 'GET',
'max_redirects' => '0')
);
$context = stream_context_create($opts);
$handle = fopen($feed, 'r', false, $context);