PHP Cannot modify header information 头部报错深度复盘(含BOM根治+全场景避坑)
文章简介:PHP开发中,Cannot modify header information - headers already sent 是出现频率极高、排查难度极大的隐形报错。该报错少少在本地开发环境复现,几乎全部暴露在服务器生产环境,多数开发者会误以为是代码逻辑问题,反复调试却无法根治。本文结合多年线上项目运维经验,完整拆解报错核心成因、各类触发场景、错误代码案例,提供从临时修复、精准排查到永世根治的全套实战方案,同时总结企业级开发避坑规范,适配原生PHP、ThinkPHP、Laravel等所有PHP开发场景。
报错完整现象与复现场景
线上服务器报错日志:
Warning: Cannot modify header information - headers already sent by (output started at /www/index.php:1) in /www/index.php on line 20
业务异常表现:网站跳转失效、登录态无法保存、Cookie/Token设置失败、接口跨域失效、页面空白跳转,本地Windows、Mac开发环境运行完全正常,摆设至Linux生产环境后必现或偶现报错。
高频触发场景: