Current Location: Home> Latest Articles> PHP 7 Error Handling Tips: How to Send Error Reports to Admin's Email Using the set_error_handler Function

PHP 7 Error Handling Tips: How to Send Error Reports to Admin's Email Using the set_error_handler Function

M66 2025-06-11

Creating an Error Handling Function

In PHP application development, error handling is a crucial aspect to ensure system stability. By promptly capturing and handling errors, developers can quickly identify and resolve issues, ensuring reliable operation of the application. This article demonstrates how to use the set_error_handler function to send error reports to an admin's email.

1. Creating a Custom Error Handling Function

First, we need to create a custom error handling function. This function will capture PHP errors and send the error information to the admin's email. Here's a sample function:

<?php
function sendErrorReport($errno, $errstr, $errfile, $errline) {
    $to = 'admin@example.com';  // Admin email address
    $subject = 'PHP Error Report';  // Email subject
    $message = "Error: [$errno] $errstr - $errfile:$errline";  // Error message
    // Send email
    if (mail($to, $subject, $message)) {
        return true;
    } else {
        return false;
    }
}
?>

In the above code, we define a function called sendErrorReport. This function accepts four parameters: error level ($errno), error message ($errstr), file path where the error occurred ($errfile), and the line number ($errline). The function then uses PHP's mail function to send the error information to the specified admin email.

2. Setting the Error Handling Function

Next, we use the set_error_handler function to set our custom error handler as the default one. Below is an example code snippet demonstrating how to configure the error handler:

<?php
// Set error reporting level
error_reporting(E_ALL);
// Enable error display
ini_set('display_errors', 1);
// Set error handler function
set_error_handler('sendErrorReport');
?>

In this code, we first set the error reporting level to E_ALL using the error_reporting function to capture all possible PHP errors. Then, we enable error display by setting it to 1 using the ini_set function. Finally, we use the set_error_handler function to set our previously defined error handler, sendErrorReport.

In the last line of code, we intentionally create an error by referencing an undefined variable. Since we've already set the custom error handler, the error information will be sent to the admin's email.

3. Things to Keep in Mind

It's important to note that the error handler set by set_error_handler will only catch PHP reported errors, and not critical errors such as syntax errors or fatal errors. For these types of errors, you will still need to check the PHP error logs or server logs for detailed information.

Additionally, to ensure the reliability of error reports, it is recommended to implement extra error handling steps before sending error notifications. For example, you can log the errors to a file or database. This way, even if the email fails to send, you'll still have a record of the error.

Conclusion

This article introduced how to use PHP 7's set_error_handler function to send error reports to an admin's email. By using a custom error handler, developers can quickly receive error reports and troubleshoot issues, which improves the stability and reliability of the application. We hope this tip helps you enhance your error handling mechanism and improve development efficiency.