php utf-8 bom头ufeff引发的问题
今天在使用php的file_get_content读取文本的时候发现,文本头部有未知的字符,我写文本的时候没有加这个字符,怎么回事呢
网上查了一下,这就是utf-8 bom头信息,通常使用windows记事本保存文本为utf-8格式的时候,记事本会默认加入bom头
一、那什么是bom头呢
BOM是Byte Order Mark的缩写,即字节顺序标记,它是插入到UTF-8,UTF-16或UTF-32编码的Unicode文件开头的特殊标记,用来标识Unicode文件的编码类型。
这种bom头对于html代码和php代码有点影响,特别是php代码在输出图片的时候,经常会出现无法显示图片的问题,因为输出图片的头部有bom头,导致图片无法显示
二、怎么去掉bom头呢
第一种:php代码头部字符过滤
<?php $txtstr = file_get_contents('bfwdemo.txt'); if (strpos($txtstr, "\xEF\xBB\xBF") === 0) { //\x表示16进制 $txtstr = substr($txtstr, 3); } echo $txtstr; ?>第二种:将文件在本地编辑器editplus中打开另存为
网友评论0