PHP取得json前面有乱码(去除文件头部BOM ,php json输出有??,css样式也不正常,去除php bom头 ,chrome调试窗口开头多一个空格,有小红点 PHP去掉json字符串中的
BOM (Byte Order Mark) 是用于识别文件是否是大端还是小端的字节顺序标记,通常用于UTF编码的文件。在PHP中,如果文件是以UTF-8编码保存,且文件开头有BOM,则会在输出的字符串前面添加额外的字符(通常是\xEF\xBB\xBF
),这可能会导致JSON解析失败,因为JSON标准不允许BOM。
解决方法:
- 使用文本编辑器保存文件时,选择不保存BOM。
使用命令行工具或编辑器删除BOM。
- 在Linux或Mac系统中,可以使用
sed
命令删除BOM:sed -i 's/\xEF\xBB\xBF//' yourfile.php
- 在Windows系统中,可以使用
notepad++
或其他文本编辑器在保存时选择不带BOM的编码格式。
- 在Linux或Mac系统中,可以使用
如果文件已经包含BOM,可以使用以下PHP代码删除BOM:
if (substr(file_get_contents($filepath), 0, 3) == "\xEF\xBB\xBF") { $content = substr(file_get_contents($filepath), 3); file_put_contents($filepath, $content); }
确保在处理文件时,不要在JSON输出前包含BOM。如果你是通过PHP脚本生成JSON,确保在输出JSON之前没有包含BOM。如果是通过包含文件(include
/require
)引入的,确保引入的文件都没有BOM。
评论已关闭