ホームページ  >  記事  >  バックエンド開発  >  PHP の例: ファイルの先頭にある BOM 情報を検出してクリアする

PHP の例: ファイルの先頭にある BOM 情報を検出してクリアする

WBOY
WBOYオリジナル
2016-07-25 08:51:28897ブラウズ
  1. ini_set('memory_limit', '-1');
  2. /*检测并清除BOM*/
  3. $basedir = dirname(__FILE__);//扫描当前文件路径可自动设置
  4. $auto = 1;
  5. checkdir($basedir);
  6. 関数 checkdir($basedir){
  7. if($dh = opendir($basedir)){
  8. while(($file = readdir($dh)) !== false){
  9. if($file != '.' && $file != '..'){
  10. if(!is_dir($basedir."/".$file)){
  11. echo "ファイル名: $basedir/$file ".checkBOM("$basedir/$file" )."
    ";
  12. }else{
  13. $dirname = $basedir."/".$file;
  14. checkdir($dirname);
  15. }
  16. }
  17. }//end while
  18. Closedir($dh);
  19. }//end if($dh
  20. }//end function
  21. function checkBOM($filename){
  22. global $auto; // bbs.it-home.org
  23. $contents = file_get_contents($filename);
  24. $charset [1] = substr($contents, 0, 1);
  25. $charset[2] = substr($contents, 1, 1);
  26. $charset[3] = substr($contents, 2, 1); (ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191){
  27. if($auto == 1){
  28. $ rest = substr($contents, 3);
  29. rewrite ($filename, $rest);
  30. return "BOM が見つかりました。"; "BOM が見つかりました。");
  31. }
  32. }
  33. else return ("BOM が見つかりません。")
  34. }//end function
  35. function rewrite($filename, $data) ){
  36. $filenum = fopen($filename, "w");
  37. fwrite($filenum, $data);
  38. ;
  39. 复制代
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。