5

基本上我的网站上有一个页面,我希望每次运行脚本时通过电子邮件将任何 php 错误、警告等发送给我。

编辑:这必须是放置在页面上的代码,而不是对 php_ini 的编辑或类似的东西。

编辑 2:这需要捕获所有错误并在脚本末尾的一封电子邮件中发送所有错误

4

4 回答 4

7

您需要设置一个错误处理程序注册一个关闭功能来发送邮件。在一个非常简单的示例中,可能看起来像这样:

<?php

$__errors = array();
function my_error_handler($code, $message, $file, $line) {
    global $__errors;
    $__errors[] = sprintf('"%s" (%s line %s)', $message, $file, $line);
}
set_error_handler( 'my_error_handler', E_ALL );

function send_error_log() {
    global $__errors;

    if ( count( $__errors ) > 0 ) {
        foreach ( $__errors as $error ) {
            $body . $error . "\n";
        }
        mail( 'to@example.com', 'error log', $body );
    }
}
register_shutdown_function( 'send_error_log' );

?>
于 2009-11-09T18:12:00.640 回答
2

如果您试图发现代码问题,那么只查看您的网络服务器错误日志可能会更有效(假设您有访问权限)。如果您想要这些摘要形式,您可以编写一个 cron 作业以每天(或其他任何方式)向您发送邮件。

如果您无权访问错误日志,那么编写错误处理程序并使用set_error_hander()是您最好的选择。我仍然建议让错误处理程序写入日志文件而不是通过电子邮件发送给您。如果您的网站获得任何流量,您的邮箱很快就会满员。

于 2009-11-09T18:13:32.260 回答
1

您可以为set_error_handler()

于 2009-11-09T18:05:43.073 回答
1

您能做的最好的事情可能是编写一个错误处理程序,并使用 set_error_handler 进行设置。但是,这不会处理所有可能的错误。

于 2009-11-09T18:07:35.643 回答