数码资讯
UTF-8文件BOM的自动检测和清除实例的PHP实现
本文介绍了自动检测UTF-8文件BOM的PHP去除的方法,分享给大家仅供参考。具体实现的方法如下: BOM信息在文件开头的一串隐藏的字符,这是用来让一些编辑们认识到这是一个UTF-8编码的文件,但PHP读取文件时读它,形成一个问题,包含了一些无法识别的字符在文件的开头。 例如,保存为UTF-8格式的
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
本文介绍了自动检测UTF-8文件BOM的PHP去除的方法,分享给大家仅供参考。具体实现的方法如下:
BOM信息在文件开头的一串隐藏的字符,这是用来让一些编辑们认识到这是一个UTF-8编码的文件,但PHP读取文件时读它,形成一个问题,包含了一些无法识别的字符在文件的开头。
例如,保存为UTF-8格式的PHP文件是用来生成图片,也因为隐藏在文件头的BOM信息的下发,导致了错误的图片数据,和浏览器不能识别它。
检测是否一个UTF-8文件包含BOM信息,它是检测文件的开头的词的三个字,无论是0xef,0xBB,和0xbf。下面这个小程序,用户遍历一个目录中的文件和检测是否添加BOM。
复制代码代码如下:< PHP
此文件是用来测试UTF8 / /快速编码文件没有添加BOM,并能自动消除
Bob Shen
$ basedir =。; / /修改此行为检测目录,点表示当前目录
$ = 1;自动删除已找到的BOM信息。1是,0不是。
以下不改变
如果($ DH = opendir($ basedir)){
而(($文件= readdir($ DH))!= false){
如果(文件文件is_dir ==!!!(合则。 /。文件))回声文件名:文件。checkbom ($ basedir /文件);
}
closedir($ DH);
}
功能checkbom($文件名){
全球汽车美元;
内容= file_get_contents美元($文件名);
$字符{ 1 } = substr(合内容,0, 1);
$字符{ 2 } = substr(合内容,1, 1);
$字符{ 3 } = substr(合内容,2, 1);
如果(ORD($字符{ 1 })= = 239级($字符{ 2 })= = 187级($字符{ 3 })= = 191){
如果($ = 1){
$休息= substr($内容,3);
重写($文件名,$休息);
返回(已找到BOM,自动删除);
{人}
返回(找到的BOM);
}
}
否则返回(未找到BOM);
}
函数重写($文件名,$){
filenum美元= fopen($文件名,W);
羊群(filenum美元,lock_ex);
fwrite(filenum美元,美元的数据);
Fclose(filenum美元);
}
把上面的代码修改为del_bom.php,需要检测和运行目录。这可能有助于检测哪些文件与BOM信息,导致所有的页面,在页面的开始有这样的空白。
把下面的代码保存为bom.php记得保存为UTF8格式
复制代码代码如下所示:
目录下的测试结果
< PHP
此文件是用来测试UTF8 / /快速编码文件没有添加BOM,并能自动消除
由鲍伯老板
风变化
str_replace = $(目录
$ basedir =目录; / /修改此行为检测目录,点表示当前目录
$ = 1;自动删除已找到的BOM信息。1是,0不是。
以下不改变
如果($ DH = opendir($ basedir)){
而(($文件= readdir($ DH))!= false){
如果(文件文件is_dir ==!!!(合则。 /。文件))回声文件名:文件。checkbom ($ basedir /文件);
}
closedir($ DH);
}
功能checkbom($文件名){
全球汽车美元;
内容= file_get_contents美元($文件名);
$字符{ 1 } = substr(合内容,0, 1);
$字符{ 2 } = substr(合内容,1, 1);
$字符{ 3 } = substr(合内容,2, 1);
如果(ORD($字符{ 1 })= = 239级($字符{ 2 })= = 187级($字符{ 3 })= = 191){
如果($ = 1){
$休息= substr($内容,3);
重写($文件名,$休息);
返回(Bom已被清除);
{人}
返回(Bom发现);
}
}
否则返回()——未检查到BOM;
}
函数重写($文件名,$){
filenum美元= fopen($文件名,W);
羊群(filenum美元,lock_ex);
fwrite(filenum美元,美元的数据);
Fclose(filenum美元);
}
>
目录:
请输入文件夹名称,如插件/饭否,不需要添加 /。如果根目录输入被检测到。小数点的提交是可用的。
希望本文能对大家的PHP程序设计有所帮助。
BOM信息在文件开头的一串隐藏的字符,这是用来让一些编辑们认识到这是一个UTF-8编码的文件,但PHP读取文件时读它,形成一个问题,包含了一些无法识别的字符在文件的开头。
例如,保存为UTF-8格式的PHP文件是用来生成图片,也因为隐藏在文件头的BOM信息的下发,导致了错误的图片数据,和浏览器不能识别它。
检测是否一个UTF-8文件包含BOM信息,它是检测文件的开头的词的三个字,无论是0xef,0xBB,和0xbf。下面这个小程序,用户遍历一个目录中的文件和检测是否添加BOM。
复制代码代码如下:< PHP
此文件是用来测试UTF8 / /快速编码文件没有添加BOM,并能自动消除
Bob Shen
$ basedir =。; / /修改此行为检测目录,点表示当前目录
$ = 1;自动删除已找到的BOM信息。1是,0不是。
以下不改变
如果($ DH = opendir($ basedir)){
而(($文件= readdir($ DH))!= false){
如果(文件文件is_dir ==!!!(合则。 /。文件))回声文件名:文件。checkbom ($ basedir /文件);
}
closedir($ DH);
}
功能checkbom($文件名){
全球汽车美元;
内容= file_get_contents美元($文件名);
$字符{ 1 } = substr(合内容,0, 1);
$字符{ 2 } = substr(合内容,1, 1);
$字符{ 3 } = substr(合内容,2, 1);
如果(ORD($字符{ 1 })= = 239级($字符{ 2 })= = 187级($字符{ 3 })= = 191){
如果($ = 1){
$休息= substr($内容,3);
重写($文件名,$休息);
返回(已找到BOM,自动删除);
{人}
返回(找到的BOM);
}
}
否则返回(未找到BOM);
}
函数重写($文件名,$){
filenum美元= fopen($文件名,W);
羊群(filenum美元,lock_ex);
fwrite(filenum美元,美元的数据);
Fclose(filenum美元);
}
把上面的代码修改为del_bom.php,需要检测和运行目录。这可能有助于检测哪些文件与BOM信息,导致所有的页面,在页面的开始有这样的空白。
把下面的代码保存为bom.php记得保存为UTF8格式
复制代码代码如下所示:
目录下的测试结果
< PHP
此文件是用来测试UTF8 / /快速编码文件没有添加BOM,并能自动消除
由鲍伯老板
风变化
str_replace = $(目录
$ basedir =目录; / /修改此行为检测目录,点表示当前目录
$ = 1;自动删除已找到的BOM信息。1是,0不是。
以下不改变
如果($ DH = opendir($ basedir)){
而(($文件= readdir($ DH))!= false){
如果(文件文件is_dir ==!!!(合则。 /。文件))回声文件名:文件。checkbom ($ basedir /文件);
}
closedir($ DH);
}
功能checkbom($文件名){
全球汽车美元;
内容= file_get_contents美元($文件名);
$字符{ 1 } = substr(合内容,0, 1);
$字符{ 2 } = substr(合内容,1, 1);
$字符{ 3 } = substr(合内容,2, 1);
如果(ORD($字符{ 1 })= = 239级($字符{ 2 })= = 187级($字符{ 3 })= = 191){
如果($ = 1){
$休息= substr($内容,3);
重写($文件名,$休息);
返回(Bom已被清除);
{人}
返回(Bom发现);
}
}
否则返回()——未检查到BOM;
}
函数重写($文件名,$){
filenum美元= fopen($文件名,W);
羊群(filenum美元,lock_ex);
fwrite(filenum美元,美元的数据);
Fclose(filenum美元);
}
>
目录:
请输入文件夹名称,如插件/饭否,不需要添加 /。如果根目录输入被检测到。小数点的提交是可用的。
希望本文能对大家的PHP程序设计有所帮助。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。