0

我正在使用 fopen 从 URL 打开提要(.txt 文件),但有时找不到提要。我希望 fopen 在发生这种情况时返回 FALSE,以便我可以处理错误。但是,当在目标 URL 上找不到提要时,我将被重定向到站点上的另一个页面,通知我找不到指定的文件。结果是,我的 $handle 引用了错误的文件,并且 fopen 返回 TRUE(因为它找到了 -something- 尽管是错误的东西),从而破坏了我对错误处理的尝试。

如何验证 fopen 是否获得了正确的文件?谢谢。

if ($handle = fopen($feed, "r")) {
   //fopen returned true, do stuff
} else {
   //fopen returned false, quit
   die("Fail.");
}
4

1 回答 1

1

您可以让 http 包装器忽略重定向,如下所示:

$opts = array(
    'http' => array('method' => 'GET',
                    'max_redirects' => '0')
);

$context = stream_context_create($opts);
$handle = fopen($feed, 'r', false, $context);
于 2011-08-08T09:27:41.853 回答