去掉隐藏字符解决办法

阅读更多

【前言】

    本文介绍个去掉隐藏字符的解决办法

 

【主体】

   PHP项目部署到服务器上后,有时会出现html模板自动加载空行的情况,而且标签被移到了body中去。这个问题刚开始的时候知道是编辑器的问题,所以尝试编辑器转换成utf-8无BOM形式。但网上找的很多编辑器,下载了五六款尝试了下都无法实现。后来试着脚本文件去除,不过存在缺陷。所以将两种方法结合在了一起。

  (原因):是utf-8用记事本编辑代码保存的错误,使代码在保存的时候带上了BOM。

最好写代码的时候用编译器编写,不要用记事本编写代码。

  (方案):用脚本文件搜索出哪个文件存在问题,然后用编辑器转换,针对性解决问题

 

【方案】

(1)将下面代码保存为a.php文件放到根目录下,执行一下,即可打印出哪个文件出了问题。





UTF8 BOM 清除器



These files had UTF8 BOM, but i cleaned them:

'; foreach ($BOMBED as $utf) { echo $utf ."
\n"; } echo '

'; // 递归扫描 function RecursiveFolder($sHOME) { global $BOMBED, $WIN; $win32 = ($WIN == 1) ? "\\" : "/"; $folder = dir($sHOME); $foundfolders = array(); while ($file = $folder->read()) { if($file != "." and $file != "..") { if(filetype($sHOME . $win32 . $file) == "dir"){ $foundfolders[count($foundfolders)] = $sHOME . $win32 . $file; } else { $content = file_get_contents($sHOME . $win32 . $file); $BOM = SearchBOM($content); if ($BOM) { $BOMBED[count($BOMBED)] = $sHOME . $win32 . $file; // 移出BOM信息 $content = substr($content,3); // 写回到原始文件 file_put_contents($sHOME . $win32 . $file, $content); } } } } $folder->close(); if(count($foundfolders) > 0) { foreach ($foundfolders as $folder) { RecursiveFolder($folder, $win32); } } } // 搜索当前文件是否有BOM function SearchBOM($string) { if(substr($string,0,3) == pack("CCC",0xef,0xbb,0xbf)) return true; return false; } ?>

 

(2)接下来按照页面输出的提示去转换格式

   点击下面的网址下载一个UltraEdit

   http://dlsw.baidu.com/sw-search-sp/soft/41/10554/ue_chinese_V22.10.0.12_setup.1436351778.exe

   具体操作:

   打开UltraEdit,在UltraEdit里打开带隐藏字符的文件,然后另存为,窗口最下面最左边有一个选项,显示默认,打开下拉条选择utf-8无BOM,然后回车,去你保存的文件位置找到,拖拽到项目里,ok 完成。


去掉隐藏字符解决办法_第1张图片
 

 

 

 

 

 

 

 

 

.

  • 去掉隐藏字符解决办法_第2张图片
  • 大小: 105.6 KB
  • 查看图片附件

你可能感兴趣的:(后端积累)