문제

다음 코드 블록을 실행할 때 :

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] : 스트림을 열지 못했습니다 : 843 행에 /data/www/example.com/public/test.php에서 붕괴 된 리디렉션 제한 도달

이 오류의 원인은 무엇이며 어떻게 수정할 수 있습니까?

도움이 되었습니까?

해결책

열려고하는 파일은 어디에 있습니까? 로컬 파일 시스템에 있습니까? 아니면 HTTP를 통해 액세스하려고합니까?

일부 네트워크 프로토콜 래퍼를 사용하는 경우이 오류는 너무 많은 (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);
// ...

참조하십시오 :

다른 팁

열려고하려는 파일이 다른 파일을 열려고 시도하여 리디렉션 한계에 도달했기 때문일 가능성이 높습니다.

편집 : 내가 말할 때, 그것이 오류를 일으킬 수 있고 이것이 상황 일 수 있음을 의미합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top