php输出错误信息

本文介绍了一种PHP中处理运行时错误的方法,通过设置错误报告级别为E_ALL,并使用注册关闭函数来捕获致命错误,详细展示了如何输出错误信息,包括错误消息、文件名及行号。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

error_reporting(E_ALL);
function cache_shutdown_error() {
          $_error = error_get_last();
          if ($_error && in_array($_error['type'], array(1, 4, 16, 64, 256, 4096, E_ALL))) 
{
                    header("Content-Type: text/html; charset=utf-8");
                    echo '<font color=red>你的代码出错了:</font></br>';
                    echo '致命错误:' . $_error['message'] . '</br>';
                    echo '文件:' . $_error['file'] . '</br>';
                    echo '在第' . $_error['line'] . '行</br>';
                }
            }
 register_shutdown_function("cache_shutdown_error");

 最好放在最前面,如果报错就终止了,就无法执行这个方法

 

转载于:https://www.cnblogs.com/anxiaoyu/p/7657342.html

### PHP输出错误信息的配置方法 在 PHP 中,`display_errors` 和 `error_reporting` 是两个重要的配置项,它们共同决定了错误信息的行为。 #### 一、`display_errors` 配置 `display_errors` 控制是否将错误信息直接输出到浏览器。 - 当设置为 `On` 或 `1` 时,错误信息会被显示出来。 - 设置为 `Off` 或 `0` 则不会向客户端展示错误信息,而是将其隐藏[^1]。 可以通过修改 `php.ini` 文件来全局生效: ```ini display_errors = On ``` 或者通过脚本动态调整: ```php <?php ini_set('display_errors', '1'); ?> ``` 需要注意的是,在生产环境中通常建议关闭此功能以防止敏感信息泄露给最终用户[^5]。 #### 二、`error_reporting` 配置 `error_reporting` 定义了哪些类型的错误应该被报告。它支持多种常量组合,例如: - `E_ERROR`: 致命运行时错误。 - `E_WARNING`: 运行时警告 (非致命错误)。 - `E_PARSE`: 解析错误。 - `E_NOTICE`: 运行时通知 (可能表明潜在问题)。 - `E_ALL`: 所有错误和警告。 可以单独启用某些级别的错误或使用位运算符 (`|`) 来合并多个级别[^4]: ```php <?php // 报告所有错误类型 error_reporting(E_ALL); // 只报告错误和警告 error_reporting(E_ERROR | E_WARNING); ?> ``` 同样地,可以在 `php.ini` 文件中永久设定这些值: ```ini error_reporting = E_ALL ``` #### 三、其他相关配置 除了上述两项外,还有几个辅助性的参数影响着错误处理机制: 1. **`log_errors`**: 是否记录错误至日志文件。默认情况下设为 `Off`,但在实际部署场景下推荐开启以便于排查问题[^3]。 ```ini log_errors = On ``` 2. **`error_log`**: 指定存储错误日志的具体路径。如果没有正确配置该字段,则即使启用了 `log_errors` 功能也可能无法正常工作。 ```ini error_log = /var/log/php_error.log ``` 综上所述,要实现全面而灵活的错误管理策略,需综合考虑以上各项配置并合理搭配应用环境需求做出相应调整。 ```php <?php // 开发模式下的典型配置 ini_set('display_errors', '1'); // 显示错误消息 error_reporting(E_ALL); // 启用全部错误类型检测 ini_set('log_errors', '1'); // 将错误写入日志 ini_set('error_log', '/path/to/your/custom_php_errors.log'); // 自定义日志保存地址 ?> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值