thinkphp错误输出乱码修正办法

看了网站上的处理办法,各种没用,只能自己跟代码,处理自定义错误页面,和处理错误信息输出的方法都在核心类库中的function.php中。

处理异常最后都用halt函数输出模板页。所以只需要将halt代码中加上header设置,就可以轻松解决这个问题。

/**
 * 错误输出
 * @param mixed $error 错误
 * @return void
 */
function halt($error)
{
    header('Content-Type: text/html; charset=utf-8');
    $e = array();
    if(APP_DEBUG) {
        //调试模式下输出错误信息
        if(!is_array($error)) {
            $trace = debug_backtrace();
            $e['message'] = $error;
            $e['file'] = $trace[0]['file'];
            $e['line'] = $trace[0]['line'];
            ob_start();
            debug_print_backtrace();
            $e['trace'] = ob_get_clean();
        } else {
            $e = $error;
        }
    } else {
        //否则定向到错误页面
        $error_page = C('ERROR_PAGE');
        if(!empty($error_page)) {
            redirect($error_page);
        } else {
            if(C('SHOW_ERROR_MSG')) {
                $e['message'] = is_array($error) ? $error['message'] : $error;
            } else {
                $e['message'] = C('ERROR_MESSAGE');
            }
        }
    }
    // 包含异常页面模板
    include C('TMPL_EXCEPTION_FILE');
    exit;
}

 

另外我记得dump函数里面也是没有header设置的,所以在很多时候,dump也会打出乱码,所以顺手把dump的header设置也加上,可以确保代码调试的顺畅。

 

转载于:https://www.cnblogs.com/smallgo/p/3175582.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值