php的错误处理

 错误报告
       没有不会犯错的开发者,PHP的错误报告功能将协助您确认和定位这些错误。可以PHP提供的这些详细描述也可能被恶意攻击者看到,这就不妙了。使大众看不到报错信息,这一点很重要。做到这一点很容易,只要关闭display_errors,当然如果您希望得到出错信息,可以打开log_errors选项,并在error_log选项中设置出错日志文件的保存路径。

       由于出错报告的级别设定可以导致有些错误无法发现,您至少需要把error_reporting设为E_ALL(E_ALL | E_STRICT 是最高的设置, 提供向下兼容的建议, 如不建议使用的提示).

       所有的出错报告级别可以在任意级别进行修改,所以您如果使用的是共享的主机,没有权限对php.ini, httpd.conf, 或 .htaccess等配置文件进行更改时,您可以在程序中运行出错报告级别配置语句:

   <?php

   ini_set('error_reporting', E_ALL | E_STRICT);

  ini_set('display_errors', 'Off');

  ini_set('log_errors', 'On');

  ini_set('error_log', '/usr/local/apache/logs/error_log');

   ?>

 小提示

http://php.net/manual/ini.php 对php.ini的选项配置作了详尽的说明。

        PHP还允许您通过 set_error_handler( ) 函数指定您自已的出错处理函数:

 CODE:

  <?php

   set_error_handler('my_error_handler');

   ?>

        上面程序指定了您自已的出错处理函数my_error_handler( ); 下面是一个实际使用的示例:

 CODE:

   <?php

   function my_error_handler($number, $string, $file, $line, $context)   {

    $error = "=  ==  ==  ==  ==/nPHP ERROR/n=  ==  ==  ==  ==/n";

    $error .= "Number: [$number]/n";

    $error .= "String: [$string]/n";

    $error .= "File:   [$file]/n";

    $error .= "Line:   [$line]/n";

    $error .= "Context:/n" . print_r($context, TRUE) . "/n/n";

     error_log($error, 3, '/usr/local/apache/logs/error_log');

  }

   ?>

 小提示

      PHP 5还允许向set_error_handler( )传递第二个参数以限定在什么出错情况下执行出定义的出错处理函数。比如,现在建立一个处理告警级别(warning)错误的函数:

 CODE:

  <?php

  set_error_handler('my_warning_handler', E_WARNING);

  ?>

    

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值