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 自写函数代码 获取关键字 去超链接
Feb 08 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
递归删除一个节点以及该节点下的所有节点示例
Mar 19 PHP
探寻PHP脚本不报错的原因
Jun 12 PHP
ThinkPHP模板范围判断输出In标签与Range标签用法详解
Jun 30 PHP
十大使用PHP框架的理由
Sep 26 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
Jan 07 PHP
PHP编程计算两个时间段是否有交集的实现方法(不算边界重叠)
May 30 PHP
php实现保存周期为1天的购物车类
Jul 07 PHP
如何修改Laravel中url()函数生成URL的根地址
Aug 11 PHP
php curl简单采集图片生成base64编码(并附curl函数参数说明)
Feb 15 PHP
Yii框架 session 数据库存储操作方法示例
Nov 18 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
解析CI的AJAX分页 另类实现方法
2013/06/27 PHP
php堆排序(heapsort)练习
2013/11/13 PHP
php中explode函数用法分析
2014/11/15 PHP
php常用字符串比较函数实例汇总
2014/11/24 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
php中的依赖注入实例详解
2019/08/14 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
SyntaxHighlighter语法高亮插件使用说明
2011/08/14 Javascript
JavaScript判断一个URL链接是否有效的实现方法
2011/10/08 Javascript
jQuery实现个性翻牌效果导航菜单的方法
2015/03/09 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
javascript随机显示背景图片的方法
2015/06/18 Javascript
深入解析JavaScript中的数字对象与字符串对象
2015/10/21 Javascript
jQuery操作基本控件方法实例分析
2015/12/31 Javascript
jquery.validate表单验证插件使用方法解析
2016/11/07 Javascript
基于JavaScript定位当前的地理位置
2017/04/11 Javascript
PWA介绍及快速上手搭建一个PWA应用的方法
2019/01/27 Javascript
微信小程序学习笔记之跳转页面、传递参数获得数据操作图文详解
2019/03/28 Javascript
微信小程序实现的picker多级联动功能示例
2019/05/23 Javascript
JavaScript实现五子棋游戏的方法详解
2019/07/08 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
Openlayers学习之加载鹰眼控件
2020/09/28 Javascript
python中实现指定时间调用函数示例代码
2017/09/08 Python
python中使用%与.format格式化文本方法解析
2017/12/27 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
一篇文章了解Python中常见的序列化操作
2019/06/20 Python
python实现录屏功能(亲测好用)
2020/03/02 Python
pytorch中 gpu与gpu、gpu与cpu 在load时相互转化操作
2020/05/25 Python
超30万乐谱下载:Musicnotes.com
2016/09/24 全球购物
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
澳大利亚第一旅行车和房车配件店:Caravan RV Camping
2020/12/26 全球购物
交通安全寄语大全
2014/04/08 职场文书
社区志愿者培训方案
2014/06/10 职场文书
2015年化验室工作总结
2015/04/23 职场文书
乡镇法制宣传日活动总结
2015/05/05 职场文书
浅谈Python基础之列表那些事儿
2021/05/11 Python