进销存,进销存软件,进销存管理软件,Web进销存,定制进销存系统,Web系统开发,进销存分销版,进销存企业版 -欢迎咨询viooma.com

当前位置: 主页 > Web技术 > 网络编程语言 >

去掉UTF-8文件的BOM的方法,require引起的空白

时间:2009-10-16 11:56来源:未知 作者:admin 点击:
今天编辑我的系统,突然发现使用require_once(无论是require还是include都一样)包含进来的文件会带来页面一个空白,文件编码是utf-8,怎么也解决不了,于是上网查询相关资料,结果发现是由于u
 

今天编辑我的系统,突然发现使用require_once(无论是require还是include都一样)包含进来的文件会带来页面一个空白,文件编码是utf-8,怎么也解决不了,于是上网查询相关资料,结果发现是由于utf-8的BOM引起,当务之急肯定是要删除BOM这个东西,因为他不被IE处理而直接输出(firefox好像没这个现象),至于怎么去除了,方法有很多,可以用编辑器,也可以用程序,下面我就是找了一个用程序一次性处理的代码,感觉不错,贴出来共享给朋友们:

编辑器解决方法:

EmEditor软件,先打开任意一个PHP文件,按Alt+回车,选择“文件”的标签,在“打开时的字符码”,选择“UTF-8”,然后关闭EmEditor。以后打开任何PHP文件,只要按Ctrl+S,或者Ctrl+E,就可以保存为UTF-8编码的无BOM文件,十分方便。

UltraEdit可以点击“文件→另存为”,格式选择“UTF-8无BOM”,英文网页每次都需要这个操作。否则,在按Ctrl+S时,会被保存为ANSI格式。中文网页,在第一次另存为之后,以后只要按Ctrl+S即可。

EmEditor也可以用同样的方法,“文件→另存为”,字符码选择“UTF-8”,去掉“加入 Unicode 署名”前面的勾,英文网页每次都需要这个操作。同样,中文网页,在第一次另存为之后,以后只要按Ctrl+S即可。EmEditor建议按照第一段文字的方法设置,以后无需每次都使用“另存为”。

这段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);
     }
?>

 

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:

建站技术最新文章

进销存最新客户

湖南兴鑫教育发展有限公司

湖南联大教育培训学校

山东恩凯科技发展有限公司

北京东方迪码科技有限公司

郑州威科姆科技股份有限公司

北京华旗资讯科技发展有限公司

苏州大方特种车辆有限公司

如东飞腾科技

福建松溪晖帆科技发展有限公司

韩服在线

化妆精品一店

辽宁百利达医疗

西点商务合作

香港大兴门业公司

台湾红青蜓皮鞋

台湾华达电脑科技公司

湖南娄底双鹤药业有限公司