PHP에서 모든 오류 표시

Subodh Poudel 2023년1월30일
  1. display_errors지시문과 함께error_reporting('E_ALL')함수 및ini_set()함수를 사용하여 경고 오류를 표시합니다
  2. display_errorsdisplay_startup_errors지시문과 함께error_reporting('-1')함수 및ini_set()함수를 사용하여 오류를 표시합니다
  3. PHP의 구문 분석 오류를 포함하여 모든 오류를 표시하도록php.ini파일의 지시문 수정
PHP에서 모든 오류 표시

error_reporting()함수와ini_set()함수를 사용하여 PHP 스크립트에서 오류를 표시하는 방법을 소개합니다. 첫 번째 방법은 오류를보고하고 두 번째 방법은php.ini파일 또는 Apache 구성 파일을 무시하고 현재 스크립트에 대한 오류 만 표시하도록 설정합니다.

첫 번째 방법에서와 같이error_reporting()함수와ini_set()함수를 사용하여 PHP 오류를 표시하는 또 다른 방법을 보여줍니다. 이 메서드를 첫 번째 메서드와 구별하는 중요한 점은display_startup_errors지시문과 함께 다른ini_set()함수를 사용하고error_reporting()함수는 정수 값을 인수로 사용한다는 것입니다.

php.ini파일의 구성을 변경하여 모든 PHP 오류를 표시하는 영구적 인 솔루션을 소개합니다. 위에서 언급 한 두 가지 방법은 중괄호 및 세미콜론 누락과 같은 구문 분석 오류를 표시하는 데 도움이되지 않습니다.

display_errors지시문과 함께error_reporting('E_ALL')함수 및ini_set()함수를 사용하여 경고 오류를 표시합니다

error_reporting()함수를 사용하여 PHP 스크립트의 모든 유형의 오류를보고 할 수 있습니다. 이를 위해 함수의 인수로 명명 된 상수E_ALL을 사용합니다. 모든 종류의 PHP 오류를보고합니다. 그런 다음ini_set()함수를 사용하여보고 된 오류를 표시 할 수 있습니다. 이 함수는display_errors지시문을 true로 설정합니다. 따라서php.ini파일에 구성을 설정하여 오류의 가시성을 설정합니다. 그러나 현재 스크립트를 실행하면 지시문의 원래 값이php.ini파일에 복원됩니다.

데모를 위해error_reporting(E_ALL)을 스크립트 코드의 첫 번째 행으로 작성하십시오. ini_set함수에서display_errors1로 설정합니다. 'This is a warning errorr'와 같은 메시지를 에코합니다. include()함수를 사용하여file.php라는 외부 파일을 포함합니다. 그런 다음 스크립트를 실행하십시오.

아래 예제는 PHP에서 경고 오류를 표시하려고합니다. 이 오류 유형은 스크립트 실행을 중지하지 않고 스크립트에 문제가 있음을 알려줍니다. 예제는 스크립트에file.php파일을 포함합니다. 루트 폴더에 이러한 파일이 없기 때문에 스크립트는 파일을로드하지 않고 오류를 표시합니다. 이것은 경고 오류이므로echo문이 오류와 함께 실행됩니다. error_reporting()함수에 대한 자세한 내용은 PHP 설명서를 참조하십시오.

예제 코드 :

# php 7.*
<?php
error_reporting(E_ALL);
ini_set('display_errors', '1');
echo "This is a warning error";
include ("file.php");
?>

출력:

This is a warning error 
**Warning**: include(file.php): failed to open stream: No such file or directory in **/var/www/html/index.php** on line **5** 
 
**Warning**: include(): Failed opening 'file.php' for inclusion (include_path='.:/usr/share/php') in **/var/www/html/index.php** on line **5**

display_errorsdisplay_startup_errors지시문과 함께error_reporting('-1')함수 및ini_set()함수를 사용하여 오류를 표시합니다

error_reporting()함수는 또한 정수 값을 인수로 사용합니다. 이 방법을 사용하여 PHP에서 오류를 표시 할 수 있습니다. PHP에는 많은 수준의 오류가 있습니다. -1레벨은 모든 PHP 오류를 나타냅니다. -1값을 전달하면 새로운 레벨과 상수를 사용하더라도 PHP의 향후 버전에서 작동합니다. 때때로ini_set()함수의display_errors지시문이 PHP가 시작되는 동안 발생한 오류를 항상 처리하지 않습니다. 이러한 경우display_startup_errors를 사용하여 오류를 표시 할 수 있습니다.

예를 들어,ini_set()함수의 direcitves를display_startup_errorsdisplay_errors로 설정하십시오. ini_set()함수에서1을 나타내는true로 설정합니다. error_reporting-1로 설정합니다. 변수$a에 값 10을 할당하고 변수$b를 인쇄합니다.

아래 예에서 스크립트에 알림 오류가 발생합니다. 코드는 정의되지 않은 변수를 인쇄하려고합니다. ini_set()함수에 대한 자세한 내용은 PHP 설명서를 참조하십시오.

예제 코드 :

#php 7.x
<?php
ini_set('display_startup_errors', 1);
ini_set('display_errors', 1);
error_reporting(-1);
$a = 10;
echo $b;
?>

출력:

**Notice**: Undefined variable: b in **/var/www/html/index.php** on line **6**

PHP의 구문 분석 오류를 포함하여 모든 오류를 표시하도록php.ini파일의 지시문 수정

위에서 언급 한 것이 작동하지 않을 때 PHP 오류를 표시하도록php.ini파일의 지시문을 수정할 수 있습니다. php.ini파일에는 PHP 스크립트를 실행하는 동안 필요한 기본 구성이 포함되어 있습니다. 위에서 언급 한 방법은 런타임에서만 지시어 값을 변경하는 반면php.ini파일을 수정하면 값이 영구적으로 변경됩니다. 그러나 우리는 프로덕션 수준에서이 관행을 따르지 않아야합니다. PHP의 구성 파일에 대한 자세한 내용은 PHP 설명서를 참조하십시오.

php.ini파일의 지시문 값을 변경하려면 먼저 시스템에서 파일을 찾습니다. 다음 스크립트를 사용하십시오.

#php 7.x
<?php
phpinfo();
?>

Loaded Configuration File을 찾으면php.ini파일의 위치를 ​​볼 수 있습니다. 파일에서display_errorsdisplay_startup_errors지시문을 찾고 값을on으로 변경하십시오. error_reporting을 찾아error_reporting = E_ALL ^ E_NOTICE ^ E_WARNING으로 변경합니다. 그런 다음 Apache 웹 서버를 다시 시작하십시오.

예를 들어 PHP 파일에서error_reporting(-1)을 설정합니다. 변수$aOrange값을 지정하되 그 뒤에 세미콜론을 쓰지 마십시오. 다른 행에 변수를 인쇄하십시오.

코드 예제의 출력 섹션에서 구문 분석 오류가 발생하여 표시됩니다. 따라서php.ini파일을 구성하면 구문 분석 오류도 표시 될 수 있습니다.

코드 예 :

#php 7.x
<?php
error_reporting(-1);
$a = "Orange"
echo $a;
?>

출력:

**Parse error**: syntax error, unexpected 'echo' (T_ECHO) in **/var/www/html/index.php** on line **6**
Subodh Poudel avatar Subodh Poudel avatar

Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.

LinkedIn

관련 문장 - PHP Error