>  기사  >  백엔드 개발  >  PHP에서 치명적인 오류를 잡는 방법

PHP에서 치명적인 오류를 잡는 방법

藏色散人
藏色散人원래의
2020-07-23 10:00:353112검색

PHP에서 치명적인 오류를 발생시키는 방법: 먼저 "ob_start"를 열고 "tmp.php" 파일을 만든 다음 "short.php" 파일에 몇 가지 오류 코드를 작성하고 마지막으로 "tmp.php" 파일에 액세스합니다.

PHP에서 치명적인 오류를 잡는 방법

PHP는 치명적인 오류를 포착합니다

PHP 오류 로그를 기록하면 문제를 찾고 버그를 수정하는 데 효과적으로 도움이 될 수 있습니다. PHP는 오류와 예외를 포착하기 위해 set_error_handler 및 set_Exception_handler를 제공합니다. 그러나 set_error_handler는 E_ERROR, E_PARSE, E_CORE_ERROR, E_CORE_WARNING, E_COMPILE_ERROR, E_COMPILE_WARNING, E_STRICT 및 기타 오류를 캡처할 수 없습니다. 일반적으로 치명적인 오류인 경우 PHP 인터프리터가 컴파일에 실패하게 됩니다. 당연히 이러한 오류는 포착할 수 없습니다. 그러나 몇 가지 방법을 사용하여 이러한 오류 메시지를 얻을 수 있습니다.

권장: "PHP 튜토리얼"

먼저 tmp.php를 생성하세요

<?php
//error_reporting(0);
ob_start();
set_error_handler(&#39;errorHandler&#39;);
register_shutdown_function( &#39;close&#39; );
function 大专栏  php捕获致命错误class="hljs-title">close(){
ob_end_clean();
$error = error_get_last();
echo &#39;<pre class="brush:php;toolbar:false">&#39;;
print_r($error);
}
require &#39;short.php&#39;;

그런 다음 short.php에

echo $a//고의로 세미콜론을 추가하지 않음

과 같은 오류 코드를 작성하세요. tmp.php를 방문하면 해당 페이지에는 PHP 자체의 오류 메시지가 표시되지 않고 close 메소드가 실행되는 것을 볼 수 있습니다. 위 코드에는 몇 가지 핵심 사항이 있습니다.

첫 번째, ob_start를 켭니다

두 번째: Register_shutdown_function을 사용하여 함수 등록

세 번째: error_get_last 함수를 사용하여 오류 정보 가져오기

넷째: PHP로 구문 분석한 첫 번째 파일은 치명적인 오류가 있어서는 안 됩니다. 그렇지 않으면 캡처할 수 없습니다. . 따라서 자체 프레임워크를 구축하거나 프레임워크를 선택할 때 단일 진입 방식을 사용하는 것이 가장 좋습니다

위 내용은 PHP에서 치명적인 오류를 잡는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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