一、Linux下查找BOM头命令为
grep -r -I -l $'^\xEF\xBB\xBF' ./
注:\xef\xbb\xbf是UTF8 BOM的16进制表示
PHP检测是否存在BOM头方法:
$url = 'http://www.xxx.com'; $contents=file_get_contents($url); $charset[1]=substr($contents, 0, 1); $charset[2]=substr($contents, 1, 1); $charset[3]=substr($contents, 2, 1); $hasBOM = ord($charset[1])==239 && ord($charset[2])==187 && ord($charset[3])==191; var_dump($hasBOM);
二、删除当前目录及所有子目录下的BOM头方法为(慎用)
find . -type f -exec sed -i 's/\xEF\xBB\xBF//' {} \;
另外一种方法:
echo -ne '\xef\xbb\xbf123456' | awk '{if(NR==1)sub(/^\xef\xbb\xbf/,""); print}'