国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

PHP批量檢測并去除文件BOM頭信息代碼

2024-05-04 21:47:50
字體:
來源:轉載
供稿:網友

因為文件頭信息輸出BOM頭信息,有時會對程序的執行結果造成影響,那么此時即應對這些文件的BOM信息進行去除,如下代碼為PHP方式去除當前目錄及子目錄所有文件BOM信息的代碼,新建文件,將其放倒根目錄下,然后瀏覽器訪問即可.

例子:將以上代碼保存為后綴為php的文件放到需要去除bom的文件目錄里面,然后運行該php文件,將會對該目錄以及該目錄所有的子目錄下的文件進行bom檢查并去除bom,代碼如下:

  1. <?php 
  2. if (isset($_GET['dir'])) { //設置文件目錄   
  3.     $basedir = $_GET['dir']; 
  4. else { 
  5.     $basedir = '.'
  6.  
  7. $auto = 1; 
  8. checkdir($basedir); 
  9.  
  10. function checkdir($basedir
  11.     if ($dh = opendir($basedir)) { 
  12.         while (($file = readdir($dh)) !== false) { 
  13.             if ($file != '.' && $file != '..') { 
  14.                 if (!is_dir($basedir . "/" . $file)) { 
  15.                     echo "filename: $basedir/$file " . checkBOM("$basedir/$file") . " <br>"
  16.                 } else { 
  17.                     $dirname = $basedir . "/" . $file
  18.                     checkdir($dirname); 
  19.                 } 
  20.             } 
  21.         } 
  22.         closedir($dh); 
  23.     } 
  24. function checkBOM($filename
  25.     global $auto
  26.     $contents   = file_get_contents($filename); 
  27.     $charset[1] = substr($contents, 0, 1); 
  28.     $charset[2] = substr($contents, 1, 1); 
  29.     $charset[3] = substr($contents, 2, 1); 
  30.     if (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191) { 
  31.         if ($auto == 1) { 
  32.             $rest = substr($contents, 3); 
  33.             rewrite($filename$rest); 
  34.             return ("<font color="red">BOM found, automatically removed._<a href="http://m.survivalescaperooms.com">http://m.survivalescaperooms.com</a></font>"); 
  35.         } else { 
  36.             return ("<font color="red">BOM found.</font>"); 
  37.         } 
  38.     } else 
  39.         return ("BOM Not Found."); 
  40.  
  41. function rewrite($filename$data
  42.     $filenum = fopen($filename"w"); 
  43.     flock($filenum, LOCK_EX); 
  44.     fwrite($filenum$data); 
  45.     fclose($filenum); 
  46. ?> 

例子二,代碼如下:

  1. <?php 
  2. header('content-Type: text/html; charset=utf-8'); 
  3. $auto=1;/*設置為1標示檢測BOM并去除,設置為0標示只進行BOM檢測,不去除*/ 
  4. $basedir='.'
  5. $loop=true;//m.survivalescaperooms.com echo '當前查找的目錄為:'.$basedir.'當前的設置是:'; 
  6. echo '(1)',$loop?'檢查當前目錄以及當前目錄的子目錄':'只針對當前目錄進行檢測'
  7. echo '(2)',$auto?'檢測文件BOM同時去除檢測到BOM文件的BOM<br />':'只檢測文件BOM不執行去除BOM操作<br />'
  8.  
  9. checkdir($basedir,$loop); 
  10. function checkdir($basedir='',$loop=true){ 
  11.  $basedir=emptyempty($basedir)?'.':$basedir
  12.  if($dh=opendir($basedir)){ 
  13.   while (($file=readdir($dh))!==false){ 
  14.    if($file!='.'&&$file!='..'){ 
  15.     if(!is_dir($basedir.'/'.$file)){ 
  16.      echo '文件: '.$basedir.'/'.$file .checkBOM($basedir.'/'.$file).' <br>'
  17.     }else
  18.      if(!$loopcontinue
  19.      $dirname=$basedir.'/'.$file
  20.      checkdir($dirname); 
  21.     } 
  22.    } 
  23.   } 
  24.   closedir($dh); 
  25.  } 
  26. function checkBOM($filename){ 
  27.  global $auto
  28.  $contents=file_get_contents($filename); 
  29.  $charset[1]=substr($contents,0,1); 
  30.  $charset[2]=substr($contents,1,1); 
  31.  $charset[3]=substr($contents,2,1); 
  32.  if(ord($charset[1])==239&&ord($charset[2])==187&&ord($charset[3])==191){ 
  33.   if($auto==1){ 
  34.    $rest=substr($contents,3); 
  35.    rewrite($filename,$rest); 
  36.    return (' <font color=red>找到BOM并已自動去除</font>'); 
  37.   }else
  38.    return (' <font color=red>找到BOM</font>'); 
  39.   } 
  40.  }else
  41.   return (' 沒有找到BOM'); 
  42.  } 
  43. function rewrite($filename,$data){ 
  44.  $filenum=fopen($filename,'w'); 
  45.  flock($filenum,LOCK_EX); 
  46.  fwrite($filenum,$data); 
  47.  fclose($filenum); 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 青田县| 金昌市| 城口县| 青冈县| 兴安县| 诸城市| 莎车县| 瓦房店市| 多伦县| 邵武市| 汾西县| 海门市| 江都市| 沙洋县| 邢台市| 定边县| 社旗县| 潜山县| 卓尼县| 乐陵市| 视频| 灵寿县| 湾仔区| 石棉县| 长海县| 从化市| 八宿县| 乌拉特前旗| 吴忠市| 泸水县| 墨玉县| 临泽县| 彭山县| 海南省| 荥阳市| 侯马市| 炎陵县| 弥渡县| 马公市| 栾城县| 南郑县|