>백엔드 개발 >PHP 튜토리얼 >PHP에서 error_reporting() 함수 사용(PHP 차폐 오류 수정)

PHP에서 error_reporting() 함수 사용(PHP 차폐 오류 수정)

WBOY
WBOY원래의
2016-08-08 09:31:531244검색
구문
error_reporting(report_level)
매개변수 수준이 지정되지 않은 경우 현재 오류 수준이 반환됩니다. 다음 항목은 가능한 level 값입니다:
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 _워닝
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2047 E_ALL
2048 E_STRICT
E_NOTICE는 정상적인 상황을 기록하지 않음을 나타내며, 존재하지 않는 변수에 접근을 시도하거나, stat() 함수를 사용하여 존재하지 않는 변수 파일을 볼 수 있습니다.
E_WARNING은 일반적으로 표시되지만 프로그램 실행을 중단하지는 않습니다. 이는 디버깅에 유용합니다. 예: 문제가 있는 정규 표기법으로 ereg()를 호출합니다.
E_ERROR는 일반적으로 표시되며 프로그램 실행을 중단시킵니다. 이는 이 마스크를 사용하여 메모리 구성이나 기타 오류를 추적할 수 없음을 의미합니다.
E_PARSE 구문 오류를 구문 분석합니다.
E_CORE_ERROR E_ERROR와 유사하지만 PHP 코어로 인해 발생한 오류는 포함되지 않습니다.
E_CORE_WARNING E_WARNING과 비슷하지만 PHP 핵심 오류 경고를 포함하지 않습니다.
PHP 오류 보고
php.ini 파일에는 많은 구성 설정이 있습니다. Linux에 PHP 및 Apache 2 설치에 대한 설명서에 표시된 대로 php.ini 파일을 이미 설정하여 적절한 디렉터리에 배치했어야 합니다. PHP 애플리케이션을 디버깅할 때 알아야 할 두 가지 구성 변수가 있습니다. 다음은 이 두 변수와 해당 기본값입니다.
  display_errors = Off
  Error_reporting = E_ALL
 php.ini를 설정하여 file 에서 검색하면 이 두 변수의 현재 기본값을 찾을 수 있습니다. display_errors 변수의 목적은 분명합니다. 이는 PHP에게 오류를 표시할지 여부를 알려줍니다. 기본값은 끄기입니다. 그러나 개발 프로세스를 더 쉽게 하려면 이 값을 다음으로 설정하십시오. On:
 display_errors = On
 error_reporting 변수의 기본값은 E_ALL입니다. 이 설정은 잘못된 코딩 관행부터 무해한 팁, 오류까지 모든 것을 보여줍니다. E_ALL은 브라우저의 출력을 엉망으로 만드는 작은 일(예: 변수가 초기화되지 않음)에 대한 힌트도 화면에 표시하므로 개발 목적에 비해 너무 세분화되어 있습니다. 오류와 잘못된 코딩 관행만 보고 싶고 무해한 팁은 보고 싶지 않습니다. 따라서 다음 값으로 바꿔주세요. error_reporting의 기본값:
 error_reporting = E_ALL & ~E_NOTICE
Apache를 다시 시작하면 모든 것이 설정됩니다. 다음으로 Apache에서 동일한 작업을 수행하는 방법을 알아봅니다.
서버 오류 보고
Apache가 수행하는 작업에 따라 PHP 버전이 여러 개 있을 수 있으므로 PHP에서 오류 보고 기능을 설정하지 못할 수 있습니다. Apache는 하나의 php.ini만 볼 수 있기 때문에 Apache가 어떤 PHP 버전을 사용하고 있는지 알기 어려울 때가 있습니다. 문서. Apache가 자체 구성을 위해 어떤 php.ini 파일을 사용하는지 모르는 것은 보안 문제입니다. 그러나 올바른 오류 수준이 설정되도록 Apache에서 PHP 변수를 구성하는 방법이 있습니다.
또한 서버 측에서 이러한 구성 변수를 설정하여 php.ini 파일을 재정의하거나 선점하여 더 높은 수준의 보안을 제공하는 방법을 아는 것이 좋습니다.
Apache를 구성할 때 /conf/httpd.conf의 http.conf 파일에 기본 구성이 이미 노출되어 있어야 합니다.
php.ini 파일에서 이미 수행한 작업을 수행하려면 httpd.conf에 다음 줄을 추가하고 모든 php.ini 파일을 재정의합니다.
php_flag display_errors on
  php_value error_reporting 2039
이는 php.ini 파일의 display_errors에 대해 이미 설정된 플래그와 error_reporting 값을 재정의합니다. 값 2039는 E_ALL & ~E_NOTICE를 나타냅니다. E_ALL을 사용하려면 값을 다음으로 설정하세요. 2047. 이번에도 Apache를 다시 시작해야 합니다.
다음으로 서버에서 오류 보고를 테스트해야 합니다.

error_reporting() 함수의 경우 일부 오류 메시지를 차단할 수 있지만, PHP 코어로 인해 발생한 오류는 PHP 파일 컴파일이 직접 발생하기 때문에 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 
// This is the default value set in php.ini;报告所有的错误但不包括E_NOTICE 这也是php.ini的缺省设置 
error_reporting(E_ALL ^ E_NOTICE); 

// Report all PHP errors (bitwise 63 may be used in PHP 3);报告所有的错误 
error_reporting(E_ALL); 

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

위 내용은 관련 내용을 포함하여 PHP에서 error_reporting() 함수의 사용법(PHP를 수정하여 오류 차단)을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.