PHPエラーログの取得と整理

1654 ワード

<?php


error_reporting (0);
register_shutdown_function($err = 'my_error_handler') OR set_error_handler($err,E_ALL); //         .

//       
$original  = unserialize ( array(423142,2134234));

//    0 
echo 1/0;

//         
echo $_GET['aa'];

//       
PHP_E;

//       
echo $var;

//       
strlen(array(2434));

//       
md5(array(1));

//        
trigger_error('safdds',E_USER_NOTICE);

//        php  
// tes();

//        php  
$ts = new afsd();


function my_error_handler($errno=0 ,$errstr=0 , $errfile=0 ,$errline=0){
    if($errno && $errfile){
        if(true){
            $earr = array();
            $earr['type'] = $errno;
            $earr['message'] = $errstr;
            $earr['file'] = $errfile;
            $earr['line'] = $errline;
        }
    }else{
        $earr = error_get_last();
    }
        
    echo '<pre>';
    print_r($earr);
    return array();
}

phpエラーについては、タイプがいくつかあり、いつトリガーされ、戻り値が何であるかを認識しなければならない.
警告、エラー、推奨、プロンプトなどの詳細なタイプを区別しない場合は、phpエラーのタイプは2つあることがわかります.
1つは強制中断プログラムエラーである.エラー、メソッドが存在しないなど.メモリ不足、タイムアウト
非中断エラーである.警告、ヒントなど
割り込みプログラムの取得エラーはregister_を使用する必要がありますshutdown_function関数は、メモリ関数を登録し、エラー情報を取得します.この方法では、存在しない関数が複数ある場合、最初のエラーのみを取得できます.これも実際にはメリットがあります.修復すると、次の場所に移動します.非割り込みエラー:register_shutdown_function、それは異常に操作しにくくなり、最初のヒントや警告を得るだけで、set_が必要です.error_handlerは、error level constantsに触れるたびにエラー関数を呼び出し、エラーログを取得することができます.ただし、この関数はerror_を受け取ります.get_last関数だからerror_get_lastは空に戻り、すべてパラメータによって入力.
2つの関数を一緒に運用すると、プログラムの99%のエラーが得られ、phpプログラムにとっては雪の中でライターを送ることになる.上記の例を実行してみましょう.end;