현재 위치: > 최신 기사 목록> PHP 7 오류 처리 요령 : SET_ERROR_HANDLER 기능을 통해 관리자 사서함에 오류 보고서를 보내는 방법

PHP 7 오류 처리 요령 : SET_ERROR_HANDLER 기능을 통해 관리자 사서함에 오류 보고서를 보내는 방법

M66 2025-06-11

오류 처리 기능을 만듭니다

PHP 응용 프로그램을 개발할 때 오류 처리는 시스템 안정성을 보장하는 데 중요한 부분입니다. 오류를 신속하게 캡처하고 처리함으로써 개발자는 프로그램의 문제를 신속하게 문제 해결하고 해결하여 시스템의 신뢰할 수있는 작동을 보장 할 수 있습니다. 이 기사에서는 set_error_handler 함수를 사용하여 관리자 사서함에 오류 보고서를 보내는 기술을 소개합니다.

1. 사용자 정의 오류 처리 기능을 만듭니다

먼저 사용자 지정 오류 처리 기능을 작성해야합니다. 이 기능은 PHP 오류를 포착하고 관리자 사서함에 오류 메시지를 보냅니다. 샘플 코드는 다음과 같습니다.

<?php
function sendErrorReport($errno, $errstr, $errfile, $errline) {
    $to = 'admin@example.com';  // 관리자 이메일 주소
    $subject = 'PHP 오류 보고서';  // 이메일 주제
    $message = "오류 메시지:[$errno] $errstr - $errfile:$errline";  // 오류 세부 사항
    // 이메일을 보내십시오
    if (mail($to, $subject, $message)) {
        return true;
    } else {
        return false;
    }
}
?>

위의 코드는 SenderRorReport라는 오류 처리기를 정의합니다. 이 함수는 오류 레벨 ($ errno), 오류 메시지 ($ errstrs), 오류 파일 ($ errfile) 및 오류 줄 번호 ($ errline)를 매개 변수로 수신하고 메일 함수를 통해 관리자가 지정한 사서함으로 오류 메시지를 보냅니다.

2. 오류 처리 기능을 설정하십시오

다음으로 set_error_handler 함수를 사용하여 사용자 정의 오류 처리 기능을 설정합니다. 다음은 구성 방법의 코드 예입니다.

<?php
// 设置오류 보고서级别
error_reporting(E_ALL);
// 오류 표시를 켜십시오
ini_set('display_errors', 1);
// 오류 처리 기능 설정
set_error_handler('sendErrorReport');
?>

위의 코드에서는 먼저 Error_Reporting 함수를 통해 오류보고 수준을 E_ALL로 설정하여 모든 유형의 PHP 오류가 캡처되도록합니다. 다음으로 ini_set 함수를 통해 오류 표시 기능을 활성화합니다. 마지막으로 SET_ERROR_HANDLER 기능을 사용하여 사용자 정의 오류 처리 기능을 기본 오류 처리 기능으로 설정합니다.

코드가 끝나면 정의되지 않은 변수를 의도적으로 출력하여 오류가 발생합니다. 현재 오류 메시지는 SenderRorReport 함수에 의해 캡처되어 관리자 사서함으로 전송됩니다.

3. 주목할만한 것들

Set_Error_handler를 사용하여 오류 처리 함수 세트는 PHP에서보고 한 오류 만 포착 할 수 있으며 구문 오류 또는 치명적인 오류를 포착 할 수 없습니다. 이러한 유형의 오류의 경우 개발자는 여전히 PHP 오류 로그 또는 서버 로그를 보면 세부 사항을 가져와야합니다.

또한 오류 보고서의 신뢰성을 보장하기 위해 오류 보고서를 보내기 전에 추가 오류 처리가 권장됩니다. 예를 들어, 오류 정보는 로그 파일 또는 데이터베이스에 기록 될 수 있으므로 실패로 이메일이 전송되면 오류 세부 정보를 얻을 수 있습니다.

요약

이 기사에서는 PHP 7의 set_error_handler 기능을 사용하여 관리자 사서함에 오류 보고서를 보내는 방법에 대한 팁에 대해 설명합니다. 사용자 지정 오류 처리 기능을 통해 개발자는 응용 프로그램의 오류를 즉시 이해하고 신속하게 문제를 해결하고 수리하여 시스템의 안정성과 신뢰성을 향상시킬 수 있습니다. 이 기술이 오류 처리 메커니즘을 개선하고 개발 효율성을 향상시키는 데 도움이되기를 바랍니다.