题
在执行下面的方框代码:
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) [功能。fopen]:未能打开 流:重定向限制达到, 中止在 /data/www/example.com/public/test.php 在线843
是什么原因导致这种误差和如何我能纠正它?
解决方案
哪里有文件,位于您试图打开?是他们的本地文件系统或者是你想要访问它们通过HTTP(S)?
如果你使用的一些网络包装协议后,这一错误是最有可能与太多的(HTTP的情况HTTP(S)协议)重定向的方式,从脚本到你想要的文件开放。的 默认的重新定向的限制应为20.作为20定向都相当多,可能会有一些错误,在文件本身(例如导致网络服务器上的另一端做一些拼写检查-重定向的)或者其他的服务器是错误配置的或存在一些安全措施,或者...
如果你觉得有必要延长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);
// ...
请见:
其他提示
这是非常有可能是由于你试图打开试图打开另一个文件,正是如此深远重定向的限制文件。
编辑:当我说有可能的,我的意思是可能会导致错误,这可能是这种情况。
不隶属于 StackOverflow