bom头的影响

在setcookie的时候出现下面错误。

Cannot modify header information - headers already sent by ....

这个错误非常之常见,如果在setcookie之前输出了任何文本内容,便会有上 述错误提示。由于页面头部require了若干文件,一行行排查是很麻烦的事情, 因此,我在页面顶部加上:

PLAIN TEXT
PHP:
ob_start();

在setcookie之前加上代码:

PLAIN TEXT
PHP:
ob_get_clean();
这是为了获取setcookie之前页面输出的内容。页面运行后,显示输出了 一个空字符串,也就是说,setcookie之前没有任何输出。

继而用vim打开了源文件,发觉vim有打开bomb选项,怀疑因此给代码添加了 隐藏的字符串,关闭之:

set nobomb

问题解决。

BOM是什么意思?

BOM是“Byte Order Mark”的缩写,用于标记文件的编码。并不 是所有的文本编辑工具都能识别BOM标记

时间: 2024-08-30 13:26:50

bom头的影响的相关文章

linux下查找包含utf8 BOM头的文件,并删除BOM头信息(FEEF)

UTF-8 编码的文件可以分为no BOM 和 BOM两种格式. 有bom头的存储或者字节流,它一定是unicode字符集编码.到底属于那一种(utf-8还是utf-16或是utf-32),通过头可以判断出来. 在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码 UTF-8的BOM是 EFBBBF,因为UE载入UTF-8文件会转成Utf16,上述的EFBBBF 在Utf16中是FFFE(Unicode-LE的BOM) 1.editplus去BOM头的方法  编

HTTP响应的头文件影响文件下载

网站不仅仅只包含网页,有时你需要提供用户能下载的文件.将你的文件放到服务器上并在网页中附上链接只是第一步,你还需意识到HTTP响应的头文件影响文件下载. 提示一:强制下载并控制文件名 在HTML中提供一个下载链接很简单: <a href="http://download.httpwatch.com/httpwatch.exe">Download<a> 对于浏览器不知道如何呈现的二进制文件,如安装程序和ZIP文件,这工作的很好.这会出现一个对话框,允许用户将文件存

PHP批量去除BOM头代码分享

        这篇文章主要介绍了PHP批量去除BOM头代码分享,本文直接给出实现代码,代码比较简单,容易看懂,需要的朋友可以参考下     ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 <?php /** * 去除bom头信息 */ header("Content-Ty

PHP 下载文件时自动添加bom头的方法

首先弄清楚,什么是bom头?在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark). 不仅限于 记事本保存的文件,只要在文件的开口包含了EF BB BF 几个不可见的字符(十六进制应该是是xEFxBBxBF,用二进制编辑文件可见).这像是一个约定俗成的东西,当系统看到这玩意的时候,就会觉得你这个文件是UTF-8编码的. 如果你的接口是UTF-8的,你需要强制下载一个文件

PHP 下载文件时自动添加bom头的方法实例

 这篇文章主要介绍了PHP 下载文件时自动添加bom头的方法实例,有需要的朋友可以参考一下 首先弄清楚,什么是bom头?在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark). 不仅限于 记事本保存的文件,只要在文件的开口包含了EF BB BF 几个不可见的字符(十六进制应该是是xEFxBBxBF,用二进制编辑文件可见).这像是一个约定俗成的东西,当系统看到这玩意的时候

PHP去除BOM头的方法

BOM头是UTF-8来告诉编辑器:我是UTF8编码.它的编码是\xEF\xBB\xBF 但是PHP在设计之初并没有考虑到BOM头的问题,所以在编解码的时候很容易出现问题   比如今天遇到的问题,json_decode,当解码的string有BOM头的时候json_decode就解析失败,返回NULL.(为什么不自动检测并去除BOM头呢...小吐槽) 试了两种方式能去除掉:   1 2 3 $result = trim($result, "\xEF\xBB\xBF"); print_r(

PHP批量删除、清除UTF-8文件BOM头的代码实例_php实例

记得运行代码前先把文件备份一下哦,避免出现失败问题. 代码一: function checkBOM ($filename) { global $auto; $contents = file_get_contents($filename); $charset[1] = substr($contents, 0, 1); $charset[2] = substr($contents, 1, 1); $charset[3] = substr($contents, 2, 1); if (ord($char

PHP 下载文件时自动添加bom头的方法实例_php技巧

首先弄清楚,什么是bom头?在Windows下用记事本之类的程序将文本文件保存为UTF-8格式时,记事本会在文件头前面加上几个不可见的字符(EF BB BF),就是所谓的BOM(Byte order Mark).不仅限于 记事本保存的文件,只要在文件的开口包含了EF BB BF 几个不可见的字符(十六进制应该是是xEFxBBxBF,用二进制编辑文件可见).这像是一个约定俗成的东西,当系统看到这玩意的时候,就会觉得你这个文件是UTF-8编码的. 如果你的接口是UTF-8的,你需要强制下载一个文件,

php中隐形字符65279(utf-8的BOM头)问题_php技巧

今天在CSDN看到一个php输出空白隐形字符65279的问题,在网上找了下,发下这个65279字符是php用来标记文件是utf-8编码的,输出的时候会一起输出到客户端,导致客户端如果使用ajax得到返回值时,无法匹配字符串. php隐形字符65279解释如下: UTF-8 编码的文件可以分为无 BOM 和 BOM 两种格式. 何谓BOM? "EF BB BF" 这三个字节就叫BOM,全称是"Byte Order Mard".在utf8文件中常用BOM来表明这个文件是