记得运行代码前先把文件备份一下哦,避免出现失败问题。
代码一:
复制代码 代码如下:
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 (bom found, automatically removed.);
} else {
return (bom found.);
}
}
else return (bom not found.);
}
代码二:
复制代码 代码如下:
代码三:
复制代码 代码如下:
##把该文件放在需求去除bom头的目录下跑一下却可。
二、python
复制代码 代码如下:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import os
def delbom():
file_count = 0
bom_files = []
for dirpath, dirnames, filenames in os.walk('.'):
if(len(filenames)):
for filename in filenames:
file_count += 1
file = open(dirpath + / + filename, 'r+')
file_contents = file.read()
if(len(file_contents) > 3):
if(ord(file_contents[0]) == 239 and ord(file_contents[1]) == 187 and ord(file_contents[2]) == 191):
bom_files.append(dirpath + / + filename)
file.seek(0)
file.write(file_contents[3:])
print bom_files[-1], bom found. deleted.
file.close()
print file_count, file(s) found., len(bom_files), file(s) have a bom. deleted.
if __name__ == __main__:
delbom()