php 获取最近错误,获取PHP警告错误信息

<?php /** * 更新非法字符、發送錯誤信息 *   * @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 = "<?php \n\$filtetextArr = array('".$result."');\n?>";     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.1\r\n";         $header .= "Host:".$domain."\r\n";         $header .= "Content-Type: application/x-www-form-urlencoded\r\n";         $header .= "Content-Length: ".$length."\r\n";         $header .= "Connection: Close\r\n\r\n";         //添加post的字符串         $header .= $params."\r\n";         //发送post的数据         fputs($fp,$header);         while (!feof($fp)) {             $line = fgets($fp,1024); //去除请求包的头只显示页面的返回数据             if ($inheader && ($line == "\n" || $line == "\r\n")) {                 echo $line;             }         }         fclose($fp);     } } function fileWrite($fFileName, $fContent, $fTag = 'w') {     ignore_user_abort (TRUE);     $fp = fopen($fFileName, $fTag);     if (flock($fp, LOCK_EX)) {         fwrite($fp, $fContent);         flock($fp, LOCK_UN);     }     fclose($fp);     ignore_user_abort (FALSE);     return; } ?> 参考文章: http://blog.chinaunix.net/u/27731/showart_480532.html http://book.csdn.net/bookfiles/253/10025311455.shtml http://www.chinaz.com/Program/PHP/021LGE2009.html http://www.kuiis.com/Article/Program/PHP/200902/102182_4.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值