Ubuntu环境下如何移除Apache Web Server响应中的BOM?
移除PHP响应中的BOM字节解决方案
出现这个问题的核心原因是你的PHP脚本(或其引用的其他文件)带有UTF-8 BOM头——PHP会将脚本开头的BOM作为输出内容直接发送,早于你设置的HTTP头部,最终导致BOM出现在响应的最前端。
以下是具体解决步骤:
检查并清理当前脚本的BOM
用支持编码查看的编辑器(如Vim、VS Code)打开你的下载脚本:- Vim中执行
:set bomb?,如果返回bomb说明存在BOM,接着执行:set nobomb后保存文件。 - VS Code可点击右下角编码选项,切换为「UTF-8」而非「UTF-8 with BOM」,保存更改。
- Vim中执行
检查所有被引用的PHP文件
如果你的脚本使用include/require引入了其他PHP文件,这些文件也可能带有BOM,需要逐一检查并去除BOM编码。临时缓冲修复(快速应急)
若暂时无法修改文件编码,可在脚本最开头添加缓冲区清理代码,确保发送头部前清空所有输出:ob_clean();注意:这行代码必须放在所有输出(包括空格、空行、其他PHP代码的输出)之前,否则无效。
修改完成后重新测试下载,用WinHex验证响应内容,BOM字节应已被移除,文件大小恢复为原文件的40字节。
内容的提问来源于stack exchange,提问作者xscript09
相关产品推荐
相关产品推荐

