网站地图    收藏   

主页 > php专栏 > php应用 >

检测与删除页面BOM(UTF-8)空行方法 - php高级应用

来源:自学PHP网    时间:2014-11-27 22:16 作者: 阅读:

[导读] 我们经常会在发现页面中无故多了一些空白行了,但在编辑器中又看到到,这个我们知道是由BOM(UTF-8)导致的 我最常用的办法,利用php替换 BOM: 万国码档案签名 BOM (Byte Order Mark, U+FEFF)BOM...

检测与删除页面BOM(UTF-8)空行方法

我们经常会在发现页面中无故多了一些空白行了,但在编辑器中又看到到,这个我们知道是由BOM(UTF-8)导致的.

我最常用的办法,利用php替换.

BOM: 万国码档案签名 BOM (Byte Order Mark, U+FEFF)

BOM 的内容可以表示 UNICODE 是哪种编码,但是在接收到的档案,要拆解后写入 DB,看到 BOM 就觉得有点 ooxx.

在 utf8_encode 看到两段程式可以来测试 写入/移除 BOM.将写入的档案内容前加 BOM,代码如下:

  1. <?php 
  2. function writeUTF8File($filename,$content
  3.     $f = fopen($filename'w'); 
  4.     fwrite($f, pack("CCC", 0xef,0xbb,0xbf)); 
  5.     fwrite($f,$content); 
  6.     fclose($f); 
  7. ?> 

移除 BOM function,代码如下:

  1. <?php 
  2. function removeBOM($str = ''
  3.    if (substr($str, 0,3) == pack("CCC",0xef,0xbb,0xbf)) { 
  4.        $str = substr($str, 3); 
  5.    } 
  6.    return $str
  7. ?> 

另外看到,判断此字串是不是 UTF-8 的 function,代码如下:

  1. function isUTF8($string
  2.     return (utf8_encode(utf8_decode($string)) == $string); 

利用ultraedit编辑器直接修改文档

把出现空行的文档另存没没有BOM的格式就行了,ultraedit保存文档时的编码格式,选择里面的UTF8-无BOM,一切解决.

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论