2009-11-26 4 views
3

나는 PHP 경고를 처리하는 것을 멈추는 PHP 스크립트를 가지고있다. 오류는 일반적으로 "PHP 경고 : fopen"- "스트림을 열지 못했습니다 : 해당 파일이나 디렉토리가 없습니다"입니다.PHP 스크립트가 경고 오류로 처리를 중단합니까?

여기에서 PHP를 중단해야합니까? 치명적인 오류 만 생각 했나요?

계속 진행할 수 있나요?

+0

PHP 버전이 실제로 경고를 받았다고 확인 했습니까? ' VolkerK

+0

OP는보고되거나 표시된 경고에서 PHP가 멈추지 않을 것으로 기대합니다. 특수 처리기를 사용하는 것 외의 유일한 구성은 Xdebug를 사용하여 수행 할 수있는 것으로 알고있는 http://stackoverflow.com/questions/10520390/stop-script-execution-upon-notice-warning을 참조하십시오. xdebug 모듈이 설치되어 있고'xdebug.halt_level'에'E_WARNING'이 포함되어 있다면 PHP는 시스템 경고에서 멈출 것입니다. 물론, 우리는 경고를 제거하기를 원하지만, 우리가 원한다면 시스템이 멈추지 않아야합니다. 따라서 OP는 구성 설정을 확인해야합니다. –

+0

새로 설치할 때 동일한 문제가 발생합니다. PHP는 스크립트를 사전 처리하고 통지를 받으면 출력 버퍼에 덤프하지만 어떤 코드도 실행하지 않습니다. – Matth3w

답변

1

네, error_reporting() 수준이 충분히 낮은해야하는 경우 .

예, 있습니다. 이 같은 경고의 원인 fopen, 이전에 "@"를 추가 오픈에 실패 @fopen(...)

-1

계속 되더라도 프로그램은 의도 한대로 작동하지 않을 가능성이 높습니다. 어쨌든, 예외를 처리하려고 : 또한

try { 
    # code that may cause an error 
} 
catch(Exception $e) { 
    # do error handling mechanism 
} 
+0

PHP 5에서만 ... – mauris

+0

실제로 스크립트는 계속해야하며 그 파일 없이도 할 수 있습니다. 아직 작성하지는 않았지만 특정 파일을 찾지 못하면 계속 진행하고 싶습니다. – Abs

0

을 콘라드 마이어는 PHP 설명서에서 언급 한 것과 : 오류에

$fres = @fopen('file.ext','w+'); 
if($fres){ 
    // so anything you want with the file 
} 

fopen false를 반환합니다. fopen에 오류가 표시되지 않고 if($fres)을 사용하지 않으면 후속 파일 조작 함수가 $fres이 유효한 파일 핸들이 아니라는 오류를 발생시킵니다.

2

경고가 표시되지만 스크립트 실행이 계속됩니다. 스크립트가 중지된다는 사실은 나중에 수행하려고하는 처리와 관련이 있지만 경고 자체에는 관련되지 않을 가능성이 큽니다.

이전에 file_exists 및 is_readable을 사용하는 것이 좋습니다.

+0

또한 특수 구성 설정이 될 수 있습니다. 질문에 대한 내 의견을 참조하십시오. –

관련 문제