[英]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.