获取PHP警告错误信息的解决方法
发布时间:2022-07-20 12:07 所属栏目:121 来源:互联网
导读:代码如下所示: 复制代码 代码如下:www.CuoXIn.com ?php /** * 更新非法字符、送信息 * * @author * @copyright 2009-06-10 */ error_reporting(E_ERROR | E_WARNING | E_PARSE); set_error_handler(displayErrorHandler);//自定 //信息 echo time:.date(Y-m
代码如下所示: 复制代码 代码如下:www.CuoXIn.com <?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; } ?>。 (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读