Programing

PHP 5는 엄격한 표준 오류를 비활성화

crosscheck 2020. 5. 23. 10:12
반응형

PHP 5는 엄격한 표준 오류를 비활성화


엄격한 표준에 대한 오류보고를 비활성화하려면 맨 위에 PHP 스크립트를 설정해야합니다.

아무도 도와 줄 수 있습니까?


오류보고를 비활성화 하시겠습니까, 아니면 사용자가 보지 못하게 하시겠습니까? 일반적으로 프로덕션 사이트에서도 오류를 기록하는 것이 좋습니다.

# in your PHP code:
ini_set('display_errors', '0');     # don't show any errors...
error_reporting(E_ALL | E_STRICT);  # ...but do log them

그것들은 표준 시스템 로그에 기록되거나 error_log지시문을 사용하여 오류가 발생하는 위치를 정확하게 지정합니다.


오류가 없습니다.

error_reporting(0);

또는 엄격하지 않은

error_reporting(E_ALL ^ E_STRICT);

모든 오류를 다시 표시하려면

error_reporting(-1);


위의 모든 솔루션이 정확합니다. 그러나 일반적인 PHP 응용 프로그램에 대해 이야기 할 때 필요한 모든 페이지에 포함시켜야합니다. 이 문제를 해결하는 방법 .htaccess은 루트 폴더를 통하는 것 입니다. 오류를 숨기려면 [파일에 다음 줄 중 하나를 입력하십시오]

php_flag display_errors off

또는

php_value display_errors 0

다음으로 오류보고를 설정하려면

php_value error_reporting 30719

30719어떻게되는지 궁금하다면 E_ALL (32767), E_STRICT (2048)는 실제로는 숫자 값을 보유하는 상수이며 ( 32767 - 2048 = 30719)


error_reporting 플래그 의 기본값 은 php.ini에 설정되어 있지 않은 경우 E_ALL & ~ E_NOTICE 입니다. 그러나 일부 설치 (특히 개발 환경을 대상으로하는 설치)에는 E_ALL | E_STRICT 가이 플래그의 값으로 설정되었습니다 ( 개발 중 권장되는 값입니다 ). 경우에 따라, 특히 개발 환경에서 PHP 5.3 이전에 개발되었지만 PHP 5.3에서 정의한 모범 사례로 아직 업데이트되지 않은 일부 오픈 소스 프로젝트를 실행하려는 경우에는 일부 프로젝트가 필요할 수 있습니다. 당신 같은 메시지. 이 상황에 대처하는 가장 좋은 방법은 E_ALLerror_reporting 플래그 의 값으로 설정 하는 것입니다.php.ini 또는 코드 (아마도 웹 루트의 index.php와 같은 프론트 컨트롤러에서 다음과 같이)

if(defined('E_STRICT')){
    error_reporting(E_ALL);
}

php.ini 세트에서 :

error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT

워드 프레스

워드 프레스 환경에서 작업하는 경우 워드 프레스는 함수 wp-includes / load.php 파일의 오류 수준을 설정합니다 wp_debug_mode(). 따라서이 함수가 호출 된 후 (git로 체크인되지 않은 파일에서 개발 전용) 레벨을 변경하거나 error_reporting()호출을 직접 수정해야 합니다


프로덕션 준비가 된 소프트웨어에 깨끗하고 적합한 답변을 보지 못했습니다.

/*
 * Get current error_reporting value,
 * so that we don't lose preferences set in php.ini and .htaccess
 * and accidently reenable message types disabled in those.
 *
 * If you want to disable e.g. E_STRICT on a global level,
 * use php.ini (or .htaccess for folder-level)
 */
$old_error_reporting = error_reporting();

/*
 * Disable E_STRICT on top of current error_reporting.
 *
 * Note: do NOT use ^ for disabling error message types,
 * as ^ will re-ENABLE the message type if it happens to be disabled already!
 */
error_reporting($old_error_reporting & ~E_STRICT);


// code that should not emit E_STRICT messages goes here


/*
 * Optional, depending on if/what code comes after.
 * Restore old settings.
 */
error_reporting($old_error_reporting);

참고 URL : https://stackoverflow.com/questions/1248952/php-5-disable-strict-standards-error

반응형