PHP 编程请选择正确的文本编辑软件


Posted in PHP onDecember 21, 2006

如果您在修改任何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 相关文章推荐
两种php调用Java对象的方法
Oct 09 PHP
支持oicq头像的留言簿(二)
Oct 09 PHP
PHP和Mysqlweb应用开发核心技术-第1部分 Php基础-2 php语言介绍
Jul 03 PHP
PHP实现异步调用方法研究与分享
Oct 27 PHP
PHP序列号生成函数和字符串替换函数代码
Jun 07 PHP
基于empty函数的输出详解
Jun 17 PHP
解析php中反射的应用
Jun 18 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
Jul 25 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
PHP curl 或 file_get_contents 获取需要授权页面的方法
May 05 PHP
thinkPHP框架实现的无限回复评论功能示例
Jun 09 PHP
thinkphp5.1框架模板布局与模板继承用法分析
Jul 19 PHP
PHP 模板高级篇总结
Dec 21 #PHP
PHP函数utf8转gb2312编码
Dec 21 #PHP
小偷PHP+Html+缓存
Dec 20 #PHP
PR值查询 | PageRank 查询
Dec 20 #PHP
转PHP手册及PHP编程标准
Dec 17 #PHP
IIS环境下快速安装、配置和调试PHP5.2.0
Dec 17 #PHP
亲密接触PHP之PHP语法学习笔记1
Dec 17 #PHP
You might like
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
PHP下判断网址是否有效的代码
2011/10/08 PHP
PHP中文乱码解决方案
2015/03/05 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
php获取远程文件大小
2015/10/20 PHP
php简单实现多维数组排序的方法
2016/09/30 PHP
?牟┛途W扣了一??效果出?? target=
2007/05/27 Javascript
Javascript 学习笔记 错误处理
2009/07/30 Javascript
JavaScript 异步调用框架 (Part 1 - 问题 & 场景)
2009/08/03 Javascript
javascript 使td内容不换行不撑开
2012/11/29 Javascript
js动态添加删除,后台取数据(示例代码)
2013/11/25 Javascript
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
js实现增加数字显示的环形进度条效果
2017/02/05 Javascript
js获取json中key所对应的value值的简单方法
2020/06/17 Javascript
nodejs个人博客开发第七步 后台登陆
2017/04/12 NodeJs
JS分页的实现(同步与异步)
2017/09/16 Javascript
微信小程序数字滚动插件使用详解
2018/02/02 Javascript
原生JS实现瀑布流插件
2018/02/06 Javascript
jQuery实现图片上传预览效果功能完整实例【测试可用】
2018/05/28 jQuery
echarts同一页面中四个图表切换的js数据交互方法示例
2018/07/03 Javascript
使用vue根据状态添加列表数据和删除列表数据的实例
2018/09/29 Javascript
nodeJs的安装与npm全局环境变量的配置详解
2020/01/06 NodeJs
JavaScript组合模式---引入案例分析
2020/05/23 Javascript
javascript实现雪花飘落效果
2020/08/19 Javascript
python爬虫_自动获取seebug的poc实例
2017/08/05 Python
Python实现PS图像抽象画风效果的方法
2018/01/23 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
django API 中接口的互相调用实例
2020/04/01 Python
利用Python如何画一颗心、小人发射爱心
2021/02/21 Python
用CSS3实现Win8风格的方格导航菜单效果
2013/04/10 HTML / CSS
css3的transform造成z-index无效解决方案
2014/12/04 HTML / CSS
期末考试动员演讲稿
2014/01/10 职场文书
2014中考励志标语
2014/06/05 职场文书
病危通知书样本
2015/04/17 职场文书
幼儿园万圣节活动总结
2015/05/05 职场文书
黑暗中的舞者观后感
2015/06/18 职场文书