Home  >  Article  >  Backend Development  >  How to get PHP warning error messages_PHP Tutorial

How to get PHP warning error messages_PHP Tutorial

WBOY
WBOYOriginal
2016-07-21 15:09:56874browse

The code is as follows:

Copy the code The code is as follows:

/**
* Update illegal characters and send error messages
*
* @author
* @copyright 2009-06-10
*/
error_reporting(E_ERROR | E_WARNING | E_PARSE);
set_error_handler('displayErrorHandler');//自定義錯誤
//調試信息
echo "time:".date("Y-m-d H:i:s")."n";
//數據配置
//公共函數
function displayErrorHandler($error, $error_string, $filename, $line, $symbols)
{
    $error_no_arr = array(1=>'ERROR', 2=>'WARNING', 4=>'PARSE', 8=>'NOTICE', 16=>'CORE_ERROR', 32=>'CORE_WARNING', 64=>'COMPILE_ERROR', 128=>'COMPILE_WARNING', 256=>'USER_ERROR', 512=>'USER_WARNING', 1024=>'USER_NOTICE', 2047=>'ALL', 2048=>'STRICT');
    $msg = sprintf("%s: %s at file %s(%s)", $error_no_arr[$error] ,$error_string, $filename, $line);
    if(in_array($error,array(1,2,4))){      
        echo $msg; echo "n";//調試顯示
        //發送信息
        if($error==1||$error==2) {
            sendBankMsg($error_string); //發送簡訊
            if(strpos($error_string, 'xml_parse(): Bytes:')!==FALSE){
                writeFiltefile($error_string);
            }
        }
    }
}
function hex2bin($hexdata) {
    $bindata = '';
    for($i=0; $i < strlen($hexdata); $i += 2) {
        $bindata .= chr(hexdec(substr($hexdata, $i, 2)));
    }
    return $bindata;
}
function writeFiltefile($error_string)
{
    if(strpos($error_string, 'xml_parse(): Bytes:')===FALSE||strpos($error_string, ' 0x')===FALSE){
        return;
    }          
    //寫入文件
    $filename = 'filtetext.php';
    include($filename);
    $error_string = str_replace('xml_parse(): Bytes:', '', $error_string);
    $error_string = str_replace(' 0x','', $error_string);
    $error_text = hex2bin($error_string);
    $filtetextArr[] = $error_text;
    $tempArr = array_unique($filtetextArr);//去除重復
    $result = implode("','",$tempArr);
    $result = "";
    fileWrite($filename, $result, 'w');  
}
function sendBankMsg($msg)
{
    $timestamp = time();
    $params = "msg=".$msg
             ."&posttime=".$timestamp;  
    $length = strlen($params);
    //创建socket连接
    $domain = "www.admin.com"; //socket域名
    $actionPath = "/action/bank/bankmsg.php"; //文件路徑
    $fp = fsockopen($domain,80);
    //构造post请求的头
    if($fp){
        $header = "POST ".$actionPath." HTTP/1.1rn";
        $header .= "Host:".$domain."rn";
        $header .= "Content-Type: application/x-www-form-urlencodedrn";
        $header .= "Content-Length: ".$length."rn";
        $header .= "Connection: Closernrn";
        //添加post的字符串
        $header .= $params."rn";
        //发送post的数据
        fputs($fp,$header);
        while (!feof($fp)) {
            $line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据
            if ($inheader && ($line == "n" || $line == "rn")) {
                echo $line;
            }
       }
                                           fclose($fp); 🎜> $fp = fopen($fFileName, $fTag);
if (flock($fp, LOCK_EX)) {
fwrite($fp, $fContent);
flock($fp, LOCK_UN) ;
}
fclose($fp);
ignore_user_abort (FALSE);
return;
}
?>





http://www.bkjia.com/PHPjc/327209.html
www.bkjia.com

truehttp: //www.bkjia.com/PHPjc/327209.htmlTechArticleThe code is as follows: Copy the code as follows: ?php /*** Update illegal characters and send error messages * * @author * @copyright 2009-06-10*/ error_reporting(E_ERROR | E_WARNING | E_PA...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn