나는 PHP 경고를 처리하는 것을 멈추는 PHP 스크립트를 가지고있다. 오류는 일반적으로 "PHP 경고 : fopen"- "스트림을 열지 못했습니다 : 해당 파일이나 디렉토리가 없습니다"입니다.PHP 스크립트가 경고 오류로 처리를 중단합니까?
여기에서 PHP를 중단해야합니까? 치명적인 오류 만 생각 했나요?
계속 진행할 수 있나요?
나는 PHP 경고를 처리하는 것을 멈추는 PHP 스크립트를 가지고있다. 오류는 일반적으로 "PHP 경고 : fopen"- "스트림을 열지 못했습니다 : 해당 파일이나 디렉토리가 없습니다"입니다.PHP 스크립트가 경고 오류로 처리를 중단합니까?
여기에서 PHP를 중단해야합니까? 치명적인 오류 만 생각 했나요?
계속 진행할 수 있나요?
오류를 계속하지만, 더 좋은 것은 처음에 오류가 방지 될 방법을 알고하지 마십시오
'is_readable'와'is_writable'은 Windows 시스템에서 끔찍하게 고장났습니다. 그리고 ACL을 가진 * nix에서도 마찬가지라고 생각합니다. –
네, error_reporting() 수준이 충분히 낮은해야하는 경우 .
예, 있습니다. 이 같은 경고의 원인 fopen
, 이전에 "@"를 추가 오픈에 실패 @fopen(...)
As noted on the php documentation page,
경우, E_WARNING 등급의 오류가 생성됩니다. 이 경고를 표시하지 않으려면 @를 사용할 수 있습니다.
을 콘라드 마이어는 PHP 설명서에서 언급 한 것과 : 오류에
$fres = @fopen('file.ext','w+');
if($fres){
// so anything you want with the file
}
fopen
false를 반환합니다. fopen에 오류가 표시되지 않고 if($fres)
을 사용하지 않으면 후속 파일 조작 함수가 $fres
이 유효한 파일 핸들이 아니라는 오류를 발생시킵니다.
경고가 표시되지만 스크립트 실행이 계속됩니다. 스크립트가 중지된다는 사실은 나중에 수행하려고하는 처리와 관련이 있지만 경고 자체에는 관련되지 않을 가능성이 큽니다.
이전에 file_exists 및 is_readable을 사용하는 것이 좋습니다.
또한 특수 구성 설정이 될 수 있습니다. 질문에 대한 내 의견을 참조하십시오. –
PHP 버전이 실제로 경고를 받았다고 확인 했습니까? ' php fopen ('doesnotexist', 'rb') 만 포함하는 새 스크립트를 사용해보십시오. echo '만약 당신이 이것을 읽을 수 있다면 ...'; ' – VolkerK
OP는보고되거나 표시된 경고에서 PHP가 멈추지 않을 것으로 기대합니다. 특수 처리기를 사용하는 것 외의 유일한 구성은 Xdebug를 사용하여 수행 할 수있는 것으로 알고있는 http://stackoverflow.com/questions/10520390/stop-script-execution-upon-notice-warning을 참조하십시오. xdebug 모듈이 설치되어 있고'xdebug.halt_level'에'E_WARNING'이 포함되어 있다면 PHP는 시스템 경고에서 멈출 것입니다. 물론, 우리는 경고를 제거하기를 원하지만, 우리가 원한다면 시스템이 멈추지 않아야합니다. 따라서 OP는 구성 설정을 확인해야합니다. –
새로 설치할 때 동일한 문제가 발생합니다. PHP는 스크립트를 사전 처리하고 통지를 받으면 출력 버퍼에 덤프하지만 어떤 코드도 실행하지 않습니다. – Matth3w