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 相关文章推荐
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
解析php中static,const与define的使用区别
Jun 18 PHP
解析如何用php screw加密php源代码
Jun 20 PHP
PHP实现设计模式中的抽象工厂模式详解
Oct 11 PHP
php实现字符串翻转的方法
Mar 27 PHP
php实现中文字符截取防乱码方法汇总
Apr 29 PHP
php中JSON的使用方法
Apr 30 PHP
php curl抓取网页的介绍和推广及使用CURL抓取淘宝页面集成方法
Nov 30 PHP
示例详解Laravel的注册重构
Aug 14 PHP
关于php开启错误提示的总结
Sep 24 PHP
laravel通用化的CURD的实现
Dec 13 PHP
PHP设计模式之组合模式定义与应用示例
Feb 01 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
PHP网站备份程序代码分享
2011/06/10 PHP
php把session写入数据库示例
2014/02/26 PHP
yii上传文件或图片实例
2014/04/01 PHP
php 伪造HTTP_REFERER页面URL来源的三种方法
2016/09/22 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
php正则去除网页中所有的html,js,css,注释的实现方法
2016/11/03 PHP
laravel 错误处理,接口错误返回json代码
2019/10/25 PHP
关于删除时的提示处理(确定删除吗)
2013/11/03 Javascript
js加载之使用DOM方法动态加载Javascript文件
2013/11/08 Javascript
获取select元素被选中的文本内容的js代码
2014/01/29 Javascript
jQuery之ajax删除详解
2014/02/27 Javascript
JQuery Mobile实现导航栏和页脚
2016/03/09 Javascript
jQuery实现根据滚动条位置加载相应内容功能
2016/07/18 Javascript
javascript的几种写法总结
2016/09/30 Javascript
原生js实现手风琴功能(支持横纵向调用)
2017/01/13 Javascript
JS实现页面打印功能
2017/03/16 Javascript
Angular 4中如何显示内容的CSS样式示例代码
2017/11/06 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
layer弹出层取消遮罩的方法
2019/09/25 Javascript
基于Vue全局组件与局部组件的区别说明
2020/08/11 Javascript
python paramiko实现ssh远程访问的方法
2013/12/03 Python
Python网络编程之TCP与UDP协议套接字用法示例
2018/02/02 Python
Python中一行和多行import模块问题
2018/04/01 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
Python从单元素字典中获取key和value的实例
2018/12/31 Python
Python面向对象之Web静态服务器
2019/09/03 Python
python读取csv文件指定行的2种方法详解
2020/02/13 Python
Python loguru日志库之高效输出控制台日志和日志记录
2020/03/07 Python
使用python-Jenkins批量创建及修改jobs操作
2020/05/12 Python
好邻里事迹材料
2014/01/16 职场文书
英语商务邀请函范文
2014/01/16 职场文书
文员岗位职责
2015/02/04 职场文书
初中语文教学研修日志
2015/11/13 职场文书
MySQL复制问题的三个参数分析
2021/04/07 MySQL
利用javaScript处理常用事件详解
2021/04/14 Javascript