设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 公司 数据
当前位置: 首页 > 站长学院 > PHP教程 > 正文

获取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站长网)

    网友评论
    推荐文章
      热点阅读