PHP自定义错误处理、异常处理

在阅读yii源码过程中,学习到几个系统级别的错误和异常处理方式。

如果完全自定义,可以调用ini_set(‘display_errors’,false)关闭系统的错误显示,注意,这个和error_reporting的区别,error_reporting是需要打开,参考http://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display

set_error_handler设置错误处理函数,注意函数返回值如果是true,则表示错误已经处理掉,error_get_last将没有错误信息。可以通过trigger_error来触发此函数的执行。

set_exception_handle设置异常处理函数,用来处理没有被捕获的异常

register_shutdown_function注册脚本结束时的处理函数,脚本结束分为正常结束和异常结束,此处都会调用,可以用来计算脚本执行时间之类的。

继续阅读PHP自定义错误处理、异常处理

php mb_parse_str 对 multipart/form-data无效

在处理restful的PUT方法时,Content-type为multipart/form-data时,使用mb_parse_str无法格式化数据。
参考:http://php.net/manual/zh/function.mb-parse-str.php

bool mb_parse_str ( string $encoded_string [, array &$result ] )

解析 GET/POST/COOKIE 数据并设置全局变量。 由于 PHP 不提供原始 POST/COOKIE 数据,目前它仅能够用于 GET 数据。 它解析了 URL 编码过的数据,检测其编码,并转换编码为内部编码,然后设置其值为 arrayresult 或者全局变量。

继续阅读php mb_parse_str 对 multipart/form-data无效