[php] PHP 통지를 끄려면 어떻게합니까?

Notice: Constant DIR_FS_CATALOG already defined

display_errors에서 이미 주석 처리 php.ini했지만 작동하지 않습니다.

그런 것들을 브라우저에 출력하지 않도록 PHP를 어떻게 만듭니 까?

최신 정보

나는 display_errors = Off거기에 넣었 지만 여전히 그러한 통지를보고하고 있습니다.

이것은 PHP 5.3의 문제입니까?

수많은 콜 스택 보고 도 ..



답변

당신은 설정할 수 display_errors0또는 사용 error_reporting()기능.

그러나 통지는 성가 시지만 ( 부분적으로 공감할 수 있음 ) 목적을 제공합니다. 상수를 두 번 정의하면 안됩니다. 두 번째는 작동하지 않으며 상수는 변경되지 않습니다!


답변

PHP 문서 ( error_reporting )에서 :

<?php
// Turn off all error reporting
error_reporting(0);
?>

해당 기능에 대한 다른 흥미로운 옵션 :

<?php

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL & ~E_NOTICE);
// For PHP < 5.3 use: E_ALL ^ E_NOTICE

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>


답변

명령 줄 php의 경우

error_reporting = E_ALL & ~E_NOTICE

/etc/php5/cli/php.ini

명령 php실행은 알림을 생략합니다.


답변

<?php

// Turn off all error reporting
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

출처 http://php.net/manual/en/function.error-reporting.php


답변

코드에서이 줄을 사용했습니다.

error_reporting(E_ALL ^ E_NOTICE);  

나는 그 선반이 당신에게 가득하다고 생각합니다.


답변

당신이 찾고있는:

php -d error_reporting="E_ERROR | E_WARNING | E_PARSE"


답변

error_reporting내 코드 내부를 설정하지 않는 것이 좋습니다. 그러나 한 경우, 레거시 제품에는 너무 많은 알림이있어서 숨겨야합니다.

그래서 다음 스 니펫을 사용하여 서버 측 구성 값을 설정 error_reporting했지만 E_NOTICEs를 뺍니다 .

error_reporting(error_reporting() & ~E_NOTICE);

이제 오류보고 설정을 php.ini또는 에서 추가로 구성 할 수 있습니다 .htaccess. 알림 만 항상 비활성화됩니다.