복붙노트

PHP 5는 엄격한 표준 오류 해제

PHP

PHP 5는 엄격한 표준 오류 해제

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

아무도 도와 줄 수 있니?

해결법

  1. ==============================

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

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

    # 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 지시.을 사용하여 오류를 원하는 위치를 정확하게 지정할 수 있습니다.

  2. ==============================

    2.오류가없는 경우.

    오류가없는 경우.

    error_reporting (0);

    또는 단지 엄격하지 않은

    error_reporting (E_ALL ^ ​​E_STRICT);

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

    error_reporting (-1);

  3. ==============================

    3.위의 모든 해결책은 정확합니다. 그러나 일반적인 PHP 애플리케이션에 관해 이야기 할 때는 모든 페이지에 포함시켜야합니다. 이를 해결하는 방법은 루트 폴더의 .htaccess를 사용하는 것입니다. 오류를 숨기기 만하면됩니다. [다음 줄 중 하나를 파일에 넣습니다.]

    위의 모든 해결책은 정확합니다. 그러나 일반적인 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)

  4. ==============================

    4.error_reporting 플래그의 기본값은 php.ini에서 설정되지 않은 경우 E_ALL & ~ E_NOTICE입니다. 그러나 일부 설치 (특히 개발 환경을 대상으로하는 설치)에는 E_ALL | E_STRICT는이 플래그의 값으로 설정합니다 (개발 중에 권장 값 임). 경우에 따라 특별히 PHP 5.3 시대 이전에 개발되었고 PHP 5.3에 정의 된 베스트 프랙티스로 업데이트되지 않은 일부 오픈 소스 프로젝트를 실행하려는 경우에는 개발 환경에서 당신이 좋아하는 메시지. 이 상황을 극복하는 가장 좋은 방법은 error_reporting 플래그의 값으로 E_ALL을 php.ini 또는 코드에서 설정하는 것입니다 (아마 다음과 같이 web-root의 index.php와 같은 프론트 컨트롤러에서 가능합니다 :

    error_reporting 플래그의 기본값은 php.ini에서 설정되지 않은 경우 E_ALL & ~ E_NOTICE입니다. 그러나 일부 설치 (특히 개발 환경을 대상으로하는 설치)에는 E_ALL | E_STRICT는이 플래그의 값으로 설정합니다 (개발 중에 권장 값 임). 경우에 따라 특별히 PHP 5.3 시대 이전에 개발되었고 PHP 5.3에 정의 된 베스트 프랙티스로 업데이트되지 않은 일부 오픈 소스 프로젝트를 실행하려는 경우에는 개발 환경에서 당신이 좋아하는 메시지. 이 상황을 극복하는 가장 좋은 방법은 error_reporting 플래그의 값으로 E_ALL을 php.ini 또는 코드에서 설정하는 것입니다 (아마 다음과 같이 web-root의 index.php와 같은 프론트 컨트롤러에서 가능합니다 :

    if(defined('E_STRICT')){
        error_reporting(E_ALL);
    }
    
  5. ==============================

    5.php.ini 세트에서 :

    php.ini 세트에서 :

    error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT
    
  6. ==============================

    6.WordPress

    WordPress

    Wordpress 환경에서 작업하는 경우 Wordpress는 wp_debug_mode () 함수에서 wp-includes / load.php 파일에 오류 수준을 설정합니다. 따라서이 함수가 호출 된 이후에 레벨을 변경해야합니다 (git에 체크되지 않은 파일이므로 개발에만 해당). 또는 error_reporting () 호출을 직접 수정하십시오

  7. ==============================

    7.나는 프로덕션에 대비 한 소프트웨어에 대해 깨끗하고 적합한 답변을 보지 못했습니다. 그래서 여기에 있습니다 :

    나는 프로덕션에 대비 한 소프트웨어에 대해 깨끗하고 적합한 답변을 보지 못했습니다. 그래서 여기에 있습니다 :

    /*
     * 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);
    
  8. from https://stackoverflow.com/questions/1248952/php-5-disable-strict-standards-error by cc-by-sa and MIT license