php去掉文件UTF-8的BOM头
Posted 烟云的追寻
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php去掉文件UTF-8的BOM头相关的知识,希望对你有一定的参考价值。
最近解析csv文件时第一列解析不出来,经过研究发现是文件BOM的问题
可以用以下代码去掉BOM
1 function checkBOMAndRemove($filename){ 2 $contents = file_get_contents($filename); 3 $charset[1] = substr($contents, 0, 1); 4 $charset[2] = substr($contents, 1, 1); 5 $charset[3] = substr($contents, 2, 1); 6 if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) { 7 $rest = substr($contents, 3); 8 rewrite($filename, $rest); 9 return true; 10 } else 11 return false; 12 } 13 14 15 function rewrite($filename, $data){ 16 $filenum = fopen($filename, "w"); 17 flock($filenum, LOCK_EX); 18 fwrite($filenum, $data); 19 fclose($filenum); 20 }
以上是关于php去掉文件UTF-8的BOM头的主要内容,如果未能解决你的问题,请参考以下文章
去掉utf-8的Bom头:使用java以及jdbc不使用第三方库执行sql文件脚本
求个给UTF-8文件批量去UTF-8 BOM头的批处理,去掉BOM后覆盖原来的文件,最好我可以自己添加多个文件名称!