php批量去除指定目录的bom头,创建文件的时候,一定注意,utf-8等格式都是区分bom的,单个文件可以另存,批量的话可以用下面的脚本。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | <?php  $_GET['dir'] = 'Application'; if (isset($_GET['dir'])) { //设置文件目录      $basedir = $_GET['dir']; } else {     $basedir = '.'; } $auto = 1; checkdir($basedir); function checkdir($basedir) {     if ($dh = opendir($basedir)) {         while (($file = readdir($dh)) !== false) {             if ($file != '.' && $file != '..') {                 if (!is_dir($basedir . "/" . $file)) {                     echo "filename: $basedir/$file " . checkBOM("$basedir/$file") . " <br>";                 } else {                     $dirname = $basedir . "/" . $file;                     checkdir($dirname);                 }             }         }         closedir($dh);     } } 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 ('<font color="red">BOM found, automatically removed._<a href="http://www.521php.com">http://www.521php.com</a></font>');         } else {             return ('<font color="red">BOM found.</font>');         }     } else         return ("BOM Not Found."); } function rewrite($filename, $data) {     $filenum = fopen($filename, "w");     flock($filenum, LOCK_EX);     fwrite($filenum, $data);     fclose($filenum); } ?> | 
程序本天成,妙手偶得之!我们只是代码的搬运工!
转载请注明:http://www.521php.com/archives/1746/











2015年04月25日 下午 3:59 totoro | 引用 | #1
有个更简单的方法,输出前加个@ob_end_clean(); 就好了