博睿智
SearchRSS
[重申]请选择正确的软件编辑文件
bob 发布于 January 27, 2006 16:15
如果您在修改任何PHP文件后发生:
  • 不能登入或者不能登出;
  • 页顶出现一条空白;
  • 页顶出现错误警告;
  • 其它不正常的情况。
则多半是编辑器的问题。

本程序采用UTF-8编码。现在几乎所有的文本编辑软件都可以显示并编辑UTF-8编码的文件。但是很遗憾,其中很多软件的表现并不理想。

类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。对于一般的文件,这样并不会产生什么麻烦。但对于PHP来说,BOM是个大麻烦。

PHP并不会忽略BOM,所以在读取、包含或者引用这些文件时,会把BOM作为该文件开头正文的一部分。根据嵌入式语言的特点,这串字符将被直接执行(显示)出来。由此造成即使页面的 top padding 设置为0,也无法让整个网页紧贴浏览器顶部,因为在html一开头有这3个字符呢!

最大的麻烦还不是这个。受COOKIE送出机制的限制,在这些文件开头已经有BOM的文件中,COOKIE无法送出(因为在COOKIE送出前PHP已经送出了文件头),所以登入和登出功能失效。一切依赖COOKIE、SESSION实现的功能全部无效。

因此,在编辑、更改任何文本文件时,请务必使用不会乱加BOM的编辑器。Linux下的编辑器应该都没有这个问题。WINDOWS下,请勿使用记事本等编辑器。推荐的编辑器是:
Editplus 2.12版本以上;
EmEditor;
UltraEdit(需要取消‘添加BOM’的相关选项);
Dreamweaver(需要取消‘添加BOM’的相关选项)
等。

对于已经添加了BOM的文件,要取消的话,可以用以上编辑器另存一次。(Editplus需要先另存为gb,再另存为UTF-8。)或者,用这个程序(PHP版本4.3以上):
http://www.bo-blog.com/index2.php?job=art&articleid=a_20040805_214712
 
TT
Editplus
February 10, 2008 13:13 Email Homepage
Vincent
请问有没有批量去掉的办法啊?

我是编程盲,帮下忙吧!envy
October 24, 2006 16:29
请选择正确的软件编辑PHP文件
[August 7, 2006 16:35]
来源:网络聚焦
内容:如果您在修改任何PHP文件后发生:·不能登入或者不能登出;·页顶出现一条空白;·页顶出现错误警告;·其它不正常的情况。则多半是编辑器的问题。本程序采用UTF-8编码。现在几乎所有的文本编辑软件都可以显示并编辑UTF-8编码的文件。但是很遗憾,其中很多软件的表现并不理想。类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。对于一般的文件,这样并不会产生什么麻烦。但对于PHP来说,BOM是个大麻烦。PHP并不会忽略BOM,所以在读取、包含或者引用这些文件时,会把BOM作为该文件开头正文的一部分。根据嵌入式语言的特点,这串字符将被直接执行(显示)出来。由此造成即使页面的 top padding 设置为0,也无法让整个网页紧贴浏览器顶部,因为在html一开头有这3个字符呢!最大的麻烦还不是这个。受COOKIE送出机制的限制,在这些文件开头已经有BOM的文件中,COOKIE无法送出(因为在COOKIE送出前PHP已经送出了文件头),所以登入和登出功能失效。一切依赖COOKIE、SESSION实现的功能全部无效。因此,在编辑、更改任何文本文件时,请务必使用不会乱加BOM的编辑器。Linux下的编辑器应该都没有这个问题。WINDOWS下,请勿使用记事本等编辑器。推荐的编辑器是:Editplus 2.12版本以上;EmEditor;UltraEdit(需要取消‘添加BOM’的相关选项);Dreamweaver(需要取消‘添加BOM’的相关选项)等。对于已经添加了BOM的文件,要取消的话,可以用以上编辑器另存一次。(Editplus需要先另存为gb,再另存为UTF-8。)
cottage
try vim7
May 19, 2006 23:21
过客
<table align=center><tr><td>
<script type="text/javascript"><!--
google_ad_client = "pub-3146992852206249";
google_ad_width = 728;
google_ad_height = 90;
google_ad_format = "728x90_as";
google_ad_type = "text";
google_ad_channel ="";
google_color_border = "666666";
google_color_bg = "FFFF66";
google_color_link = "804000";
google_color_url = "063E3F";
google_color_text = "2D6E89";
//--></script>
<script type="text/javascript"
 src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</td></tr></table>
这是我需要添加的一段广告代码,可是我用上面说的方法试过,怎么弄都不行,能帮我一下吗?
March 29, 2006 19:55 Email
Yumi
EmEditor也是要注意"『添加BOM』的相關選項"的...
至少我用的3.38默認是添加...每次都要把勾勾點掉...
February 4, 2006 11:35 Homepage
winglight
Editplus是我一直用的。
utf-8是个让人又爱又恨的东西。
现在我的站连bbs都是utf8了,才发现mysql数据将近多了一倍!shuai
January 27, 2006 20:13
Zhiyang
新的Dreamweaver8在UTF8编码选项里有“是否添加BOM”,去掉就没问题了~挺好用的smile
January 27, 2006 19:19 Homepage
谢谢。已经改了。
January 27, 2006 19:48
Nicky
Dreamweaver8啊,记得Dreamweaver2004也没有这个问题。
相信使用Dreamweaver的人应该不少。
January 27, 2006 18:56
Nicky
我使用Dreamweaver8,把字符设置为UTF-8,不会出现这个现象?为什么不推荐呢?
January 27, 2006 16:30
你的DW是哪个版本的?因为之前有个版本的DW表现得和记事本一样。
January 27, 2006 17:06
分页: 1/1 第一页 1 最后页
分类
  • 程序相关 [74] RSS
  • 程序扩展 [42] RSS
  • 风格模板 [16] RSS
  • 插件扩展 [24] RSS
  • 风格下载站
  • 插件下载站
  • 技术随笔 [16] RSS
  • 生活感悟 [13] RSS
  • 杂七杂八 [70] RSS
日历
统计
访问次数 4264345
今日访问 459
日志数量 212
评论数量 3387
引用数量 82
注册用户 9
在线人数 16
其他
Powered by Bo-Blog 2.5.0 build 2011.07.03