您好,欢迎访问一九零五行业门户网

PHP批量删除、清除UTF-8文件BOM头的代码实例_PHP

记得运行代码前先把文件备份一下哦,避免出现失败问题。
代码一:
复制代码 代码如下:
   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()
其它类似信息

推荐信息