PHP-BOM
来源:互联网 发布:数据脱敏是什么意思 编辑:程序博客网 时间:2024/06/06 01:15
1.问题描述:所有使用控制层返回的ajax请求都会在前面附加一个小红点,查了一下是因为文件前面有BOM,虽然事后证明并不是所有的文件都带有BOM,但是却造成所有的文件返回数据都出现问题。
2.那么,什么是BOM呢?
答曰:在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因了。
3.解决方案,去网上找一些批量处理BOM的脚本运行一下就行了,你也可以运行像editplus、Ultraedit这样的工具来解决。
4.最后提供一个去BOM的文件,运行一下就可以了。
echo '当前查找的目录为:'.$basedir.'当前的设置是:';echo $auto?'检测文件BOM同时去除检测到BOM文件的BOM<br />':'只检测文件BOM不执行去除BOM操作<br />';checkdir($basedir);function checkdir($basedir){ if($dh=opendir($basedir)){ while (($file=readdir($dh)) !== false){ if($file != '.' && $file != '..'){ if(!is_dir($basedir.'/'.$file)){ echo '文件: '.$basedir.'/'.$file .checkBOM($basedir.'/'.$file).' <br>'; }else{ $dirname=$basedir.'/'.$file; checkdir($dirname); } } } closedir($dh); }}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($charset[1])==239 && ord($charset[2])==187 && ord($charset[3])==191){ if($auto==1){ $rest=substr($contents,3); rewrite($filename,$rest); return (' <font color=red>找到BOM并已自动去除</font>'); }else{ return (' <font color=red>找到BOM</font>'); } }else{ return (' 没有找到BOM'); }}function rewrite($filename,$data){ $filenum=fopen($filename,'w'); flock($filenum,LOCK_EX); fwrite($filenum,$data); fclose($filenum);}?>
阅读全文
0 0
- PHP-BOM
- PHP去除BOM头
- PHP BOM的问题
- PHP去除BOM头
- 清理php中的bom
- php 去除 BOM头
- Php去除Bom
- PHP去除BOM头
- php 去除bom 类
- PHP自动去掉BOM
- php BOM 问题
- PHP BOM文件头
- PHP去除BOM头
- php清除BOM
- 去除BOM php代码
- php清除bom
- PHP去除BOM头
- php自动清楚BOM
- ld script 学习笔记
- 产链接和短连接的区别
- 动态代理机制
- ThreadPoolExecutor线程池源码分析
- Java 加密解密zip文件(亲测有效,附源码和jar包)
- PHP-BOM
- Ubuntu 17.10 将“关闭、最小化、最大化”按钮移动到标题栏左侧
- Django 博客
- tomcat 单点登录 SSO 原理分析
- 移动端证件识别采用视频预览模式识别
- Android studio 错误 (10048)的错误:解决通常每个套接字地址(协议/网络地址/端口)只允许使用一次。
- TOP100summit2017:网易测试总监钱蓓蕾——新时代测试正走向精英化、自动化、智能化
- WEEK4 JAVA 作业
- JavaScript 实现全选,分组全选,列表折叠。