• 批量清除BOM头


    批量清除BOM头

     (2012-03-05 13:28:30)
    标签: 

    杂谈

     
    有些php文件由于不小心保存成了含bom头的格式而导致出现一系列的问题。以下是批量清除bom头的代码,复制代码,保存成.php文件,放在想执行的文件夹,运行就可以了
    1. <?php  
    2. if (isset ( $_GET ['dir'] )) { //config the basedir    
    3.   $basedir = $_GET ['dir'];    
    4. } else {    
    5.   $basedir = '.';    
    6. }    
    7.   
    8. $auto = 1;    
    9.   
    10. checkdir ( $basedir );    
    11.   
    12. function checkdir($basedir) {    
    13.   if ($dh = opendir ( $basedir )) {    
    14.     while ( ($file = readdir ( $dh )) !== false ) {    
    15.       if ($file != '.' && $file != '..') {    
    16.         if (! is_dir ( $basedir . "/" . $file )) { // 如果是文件    
    17.           echo "filename: $basedir/$file " . checkBOM ( "$basedir/$file" ) . " <br>";    
    18.         } else {    
    19.           $dirname = $basedir . "/" .$file; // 如果是目录    
    20.           checkdir ( $dirname ); // 递归    
    21.         }    
    22.       }    
    23.     }    
    24.     closedir ( $dh );    
    25.   }    
    26. }    
    27.   
    28. function checkBOM($filename) {    
    29.   global $auto;    
    30.   $contents = file_get_contents ( $filename );    
    31.   $charset [1] = substr ( $contents, 0, 1 );    
    32.   $charset [2] = substr ( $contents, 1, 1 );    
    33.   $charset [3] = substr ( $contents, 2, 1 );    
    34.   if (ord ( $charset [1] ) == 239 && ord ( $charset [2] ) == 187 && ord ( $charset [3] ) == 191) { // BOM 的前三个字符的ASCII 码分别为 239 187 191    
    35.     if ($auto == 1) {    
    36.       $rest = substr ( $contents, 3 );    
    37.       rewrite ( $filename, $rest );    
    38.       return ("<font color=red>BOM found, automatically removed.</font>");    
    39.     } else {    
    40.       return ("<font color=red>BOM found.</font>");    
    41.     }    
    42.   } else    
    43.     return ("BOM Not Found.");    
    44. }    
    45.   
    46. function rewrite($filename, $data) {    
    47.   $filenum = fopen ( $filename, "w" );    
    48.   flock ( $filenum, LOCK_EX );    
    49.   fwrite ( $filenum, $data );    
    50.   fclose ( $filenum );    
  • 相关阅读:
    [Bash] Shortcut
    [Bash] Rerun Bash Commands with History Expansions (!! & !$)
    [Bash] Create and Copy Multiple Files with Brace Expansions in Bash
    [Bash] Add Executable Files to $PATH with Bash
    [Typescript] Create Type From Any Given Data in TypeScript
    [Typescript] Ignore Null or Undefined Values with TypeScript Non-Null Assertion Operator
    [Bash] Chain Commands with Pipes and Redirect Output in Bash
    [Bash] Use Conditional Statements in Bash
    [Bash] Understand Exit Statuses in Bash
    监听内容变化 TextWatcher @功能 [MD]
  • 原文地址:https://www.cnblogs.com/u0mo5/p/4629753.html
Copyright © 2020-2023  润新知