去掉bom头信息的方法
span style=color:#444444;font-family:Tahoma, Microsoft Yahei, Simsun;font-size:14px;line-height:21px;background-color:#FFFFFF;很多时候,我们在用php做网站的时候会出现无缘无故的错误,但是死活找不出问题所在,
很多时候,我们在用php做网站的时候会出现无缘无故的错误,但是死活找不出问题所在,还有就是用dedecms的时候,也会出现后台程序空白,或者是插件不显示的情况,如果有这些情况的时候,想想自己有没有用window下的记事本修改utf8的信息。如果是的话,那就就要注意了!
实例:http://bbs.mihoweb.com/forum.php?mod=viewthread&tid=283
实例:http://bbs.mihoweb.com/forum.php?mod=viewthread&tid=283
先来看看什么是bom头? 在utf-8编码文件中BOM在文件头部,占用三个字节,用来标示该文件属于utf-8编码,现在已经有很多软件识别bom头,但是还有些不能识别bom头,比如PHP就不能识别bom头,这也是用记事本编辑utf-8编码后执行就会出错的原因了。 去掉bom头的办法,简单的是下面两种: 1、editplus去BOM头的方法 编辑器调整为UTF8编码格式后,保存的文件前面会多出一串隐藏的字符(也即是BOM),用于编辑器识别这个文件是否是以UTF8编码。 运行Editplus,点击工具,选择首选项,选中文件,UTF-8标识选择 总是删除签名, 然后对PHP文件编辑和保存后的PHP文件就是不带BOM的了。 2、ultraedit去除bom头办法 打开文件后,另存为选项的编码格式里选择(utf-8 无bom头),确定就ok了 怎么样,去掉bom头很简单吧 3、专门写的去除文件BOM头的程序,现在公布出来,可以放在项目根目录,然后运行。 Php代码,请使用工具条复制代码 view sourceprintabout 01 <?php 02 if (isset($_GET['dir'])){ //设置文件目录 03 $basedir=$_GET['dir']; 04 }else{ 05 $basedir = '.'; 06 } 07 $auto = 1; 08 checkdir($basedir); 09 function checkdir($basedir){ 10 if ($dh = opendir($basedir)) { 11 while (($file = readdir($dh)) !== false) { 12 if ($file != '.' && $file != '..'){ 13 if (!is_dir($basedir."/".$file)) { 14 echo "filename: $basedir/$file ".checkBOM("$basedir/$file")." <br>"; 15 }else{ 16 $dirname = $basedir."/".$file; 17 checkdir($dirname); 18 } 19 } 20 } 21 closedir($dh); 22 } 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://blog.csdn.net/s394032675>csdn.net</a></font>"); 35 } else { 36 return ("<font color=red>BOM found.</font>"); 37 } 38 } 39 else 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 } 47 ?> 好了,以上就是去掉bom头的一些方法,其实做php的时候不建议用记事本的,最好是用一些专业的ide,这样能防止以上的一些小错误,来提高我们的编码效率和质量!
精彩图集
精彩文章