批量删除和UTF-8文件头去除PHP代码实例

记住在运行代码之前备份文件,以避免失败的问题。

代码1:
复制代码代码如下所示:
功能checkbom($文件名){
全球汽车美元;
内容= file_get_contents美元($文件名);
$字符{ 1 } = substr(合内容,0, 1);
$字符{ 2 } = substr(合内容,1, 1);
$字符{ 3 } = substr(合内容,2, 1);
如果(ORD($字符{ 1 })= 239级($字符{ 2 })或($字符{ 3 })= = 187 = = 191){
如果($ = 1){
$休息= substr($内容,3);
重写($文件名,$休息);
返回(已找到BOM,自动删除);
{人}
返回(找到的BOM);
}
}
否则返回(未找到BOM);
}


代码的两:
复制代码代码如下所示:
< PHP
头('content-type:文本/ HTML;字符集= UTF-8);
如果(isset($ _get { 'dir ' })){ / /设置文件目录,如果没有设置,自动设置为当前目录
basedir = { 'dir美元美元_get};
其他{ }
$ basedir = '。;
}
$ = 1; *设置为1标记,检测和删除BOM,设置为0标记,只有BOM检测,不删除。

回声当前查询目录是:当前设置,则是:美元;
回声$ auto'detection文件BOM的同时去除检测BOM文件BOM:只有检查文件BOM不执行该操作的去除的BOM;

checkdir($ basedir);
功能checkdir($ basedir){
如果($ DH = opendir($ basedir)){
而(($文件= readdir($ DH))!= false){
如果($文件)!=$文件!..)
如果(!is_dir($ basedir ' / '。文件)){
回声的文件:',则美元。/。file.checkbom美元(合则。' / '。文件)。;
其他{ }
目录=美元美元则。' / ' $文件;
checkdir($目录);
}
}
}
closedir($ DH);
}
}
Function checkBOM ($filename) {
全球汽车美元;
内容= 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美元);
}
>


代码三:
复制代码代码如下所示:
# #把文件放到BOM目录去除头下可以运行需求。
< PHP
如果(isset($ _get { 'dir ' })){ / /配置basedir
basedir = { 'dir美元美元_get};
{人}
$ basedir = '。;
}

$自动= 1;

checkdir($ basedir);
功能checkdir($ basedir){
如果($ DH = opendir($ basedir)){
而(($文件= readdir($ DH))!= false){
如果($文件)!=$文件!..)
如果(!is_dir(合则。文件。))如果文件是
回声文件名:美元/美元则文件。checkbom($ basedir /文件)。
{人}
$dirname = $basedir. 。$文件;如果目录
checkdir($目录); / /递归
}
}
}
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){ / / BOM
ASCII的前三个字符
分别编码。
239
187
191
如果($ = 1){
$休息= substr($内容,3);
重写($文件名,$休息);
返回(已找到BOM,自动删除);
{人}
返回(找到的BOM);
}
别的}
返回(未找到BOM);
}
函数重写($文件名,$){
$filenum = fopen ($filename, W);
羊群(filenum美元,lock_ex);
fwrite(filenum美元,美元的数据);
Fclose(filenum美元);
}
>































二,Python
复制代码代码如下所示:
#! / usr /斌/环境Python
UTF-8编码:* - # *—

进口操作系统

delbom(DEF):
file_count = 0
bom_files = { }

对于dirPath,dirnames文件名,在os.walk(' '):
如果(Len(文件名)):
为文件名的文件名:
file_count = 1
文件打开(dirPath +/+文件名,R +)
file_contents = file.read()

如果(Len(file_contents)> 3):
如果(ORD(file_contents { 0 })= 239和ORD(file_contents { 1 })和奥德(file_contents { 2 })= = 187 = = 191):
bom_files.append(dirPath +/+文件名)
(0)file.seek
file.write(file_contents { 3 })
打印bom_files { 1 },BOM的发现。删除。
File.close()

打印file_count,文件(S)发现。

如果__name__ = =__main__ :
DelBOM()