已达到PHP fopen()重定向限制错误

已达到PHP fopen()重定向限制错误,php,fopen,Php,Fopen,执行以下代码块时: foreach($eventfiles as $eventfile) { if($eventfile['filename']) { $file = $eventfile['filepath']; // Open File if( !($fp = fopen($file, "r"))) { echo '<br>CAN NOT READ FILE.';

执行以下代码块时:

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])."')");
    }
}
foreach($eventfiles作为$eventfile)
{
如果($eventfile['filename']))
{ 
$file=$eventfile['filepath'];
//打开文件
如果(!($fp=fopen($file,“r”))
{
echo“
无法读取文件”; 出口 } //将文件中的数据读入$data $data=“”; 而(!feof($fp))$data.=fread($fp,1024); 查询(“updateevent_rtab set html=”.escape($data)。“'where id={$eventfile[id]}”); } 如果($eventfile['eventType']=='email') { 查询(“插入事件电子邮件rtab(事件id,主题)值($eventfile[id],”)。转义($eventfile[email\u subject])。”); } }
脚本失败,出现以下错误:

fopen(test.html) [function.fopen]:打开失败 流:已达到重定向限制, 流产 /data/www/example.com/public/test.php 在线843


是什么原因导致此错误以及如何更正它?

很可能是因为您试图打开的文件正在尝试打开另一个文件,从而达到重定向限制


编辑:当我说“可能”时,我的意思是这可能会导致错误,这可能就是这种情况。

您试图打开的文件位于哪里?它们是在本地文件系统上还是您正试图通过HTTP访问它们

如果您使用的是某个网络协议包装器,则此错误很可能与从脚本到要打开的文件的过程中的过多重定向(HTTP-对于HTTP(S)协议)有关。这个由于20个重定向非常多,因此文件名本身可能存在一些错误(例如,导致另一端的Web服务器执行一些拼写检查重定向),或者另一端的服务器配置错误,或者存在一些安全措施,或者

如果您觉得需要扩展20个重定向,可以使用流上下文

$context = array(
    'http'=>array('max_redirects' => 99)
);
$context = stream_context_create($context);
// hand over the context to fopen()
$fp = fopen($file, 'r', false, $context);
// ...
请参阅: