zoukankan      html  css  js  c++  java
  • 删除文件bom的php代码

    php程序放到服务器上,其它都正常了,在调用xml数据时,FF下测试正常,但在IE下出错,每次显示出来的长度不一样,httpwatch抓包看了一下正常,看来服务器上的内容是正常的。

    问题分析:猜测原因:汉字造成的?但马上被否定了,因为纯xml文件上传到服务器上,CDATA中有汉字,也能正常显示

    分析结果:最后发现,原来是bom造成的

    下面是去掉BOM的代码:

    //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); 
         } 
    ?>
  • 相关阅读:
    《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---07
    《Linux命令行与shell脚本编程大全 第3版》高级Shell脚本编程---05
    shell-查看手机分辨率
    imageView-scaleType 图片压缩属性
    actionbar-displayOptions 属性分析
    setting.system-全局属性的设定
    ActivityChooserView-如何隐藏选择的应用图标
    mIsFunui-判断Funui方法
    setting-在设置中添加新的选项
    install-软件安装跟push的区别
  • 原文地址:https://www.cnblogs.com/smallmuda/p/2495095.html
Copyright © 2011-2022 走看看