[英]PHP fopen() Redirection Limit Reached Error
执行以下代码块时:
foreach($eventfiles as $eventfile)
{
if($eventfile['filename'])
{
$file = $eventfile['filepath'];
// Open File
if( !($fp = fopen($file, "r")))
{
echo '<br>CAN NOT READ FILE.';
exit;
}
// Read data from the file into $data
$data = "";
while (!feof($fp)) $data .= fread($fp,1024);
query("update event_rtab set html = '".escape($data)."' where id = {$eventfile[id]}");
}
if($eventfile['eventType']=='email')
{
query("INSERT INTO event_email_rtab (event_id,subject) values ($eventfile[id],'".escape($eventfile[email_subject])."')");
}
}
脚本失败并出现以下错误:
fopen(test.html)[function.fopen]:无法打开 stream:达到重定向限制,在 /data/www/example.com/public/test.php 中的第 843 行中止
是什么导致了这个错误,我该如何纠正它?
您要打开的文件在哪里? 它们是在本地文件系统上还是您试图通过 HTTP(S) 访问它们?
如果您正在使用某些网络协议包装器,那么此错误很可能与在从脚本到要打开的文件的过程中重定向过多(HTTP - 在 HTTP(S) 协议的情况下)有关。 默认重定向限制应为 20 。 由于 20 次重定向非常多,文件名本身可能存在一些错误(导致例如另一端的网络服务器进行一些拼写检查重定向)或其他服务器配置错误或有一些安全措施或......
如果您觉得需要扩展 20 个重定向,您可以使用 stream 上下文。
$context = array(
'http'=>array('max_redirects' => 99)
);
$context = stream_context_create($context);
// hand over the context to fopen()
$fp = fopen($file, 'r', false, $context);
// ...
请参见:
这很可能是因为您尝试打开的文件正在尝试打开另一个文件,从而达到重定向的限制。
编辑:当我说可能时,我的意思是这可能导致错误,这可能就是这种情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.