zoukankan      html  css  js  c++  java
  • 用php把utf8的中的BOM去掉

    今天看到一段不错的php程序,可以自动把你所有的文件的BOM去掉,而这全部过程只需要上传并运行一下,非常不错,保留下来方便下次使用。

    代码
        Write UTF-8 BOM=0
        Write UTF
    -8 BOM NF=0

    这段php程序如下,保存成php文件放在根目录中执行一次就行了,会自动去除文件头中的BOM。

    <?php

    //remove the utf-8 boms

    //by magicbug at gmail dot com




    if (isset($_GET['dir'])){ //config the basedir

         
    $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.</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);

     }

     
    ?>


  • 相关阅读:
    基础学习笔记之opencv(9):Mat图像扫描
    Android开发历程_7(ListView和ProgressBar控件的学习)
    基础学习笔记之opencv(13):基本绘图
    Qt学习之路_5(Qt TCP的初步使用)
    基础学习笔记之opencv(7):ubuntu下opencv在Qt中的使用
    EM算法学习笔记_1(对EM算法的简单理解)
    Android开发历程_1(从1个activity跳转到另一个activity)
    Matlab成长之路_1(图片,视频,摄像头的读取和显示)
    深入理解JavaScript系列(41):设计模式之模板方法
    深入理解JavaScript系列(44):设计模式之桥接模式
  • 原文地址:https://www.cnblogs.com/derrck/p/1701959.html
Copyright © 2011-2022 走看看