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 相关文章推荐
不用数据库的多用户文件自由上传投票系统(2)
Oct 09 PHP
PHP正则表达式之定界符和原子介绍
Oct 05 PHP
解析如何用php screw加密php源代码
Jun 20 PHP
使用php实现截取指定长度
Aug 06 PHP
在Ubuntu 14.04上部署 PHP 环境及 WordPress
Sep 02 PHP
基于PHP给大家讲解防刷票的一些技巧
Nov 18 PHP
crontab无法执行php的解决方法
Jan 25 PHP
php中this关键字用法分析
Dec 07 PHP
php表单习惯用的正则表达式
Oct 11 PHP
PHP中__set()实例用法和基础讲解
Jul 23 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
Sep 30 PHP
PHP重载基础知识回顾
Sep 10 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 存取 MySQL 数据库的一个例子
2006/10/09 PHP
谈谈PHP连接Access数据库的注意事项
2016/08/12 PHP
php mysql获取表字段名称和字段信息的三种方法
2016/11/13 PHP
不错的asp中显示新闻的功能
2006/10/13 Javascript
Prototype 学习 工具函数学习($A方法)
2009/07/12 Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
2010/06/19 Javascript
js通过地址栏给action传值(中文乱码全是问号)
2013/05/02 Javascript
JS网页在线获取鼠标坐标值的方法
2015/02/28 Javascript
JS表格组件神器bootstrap table详解(强化版)
2016/05/26 Javascript
利用JavaScript实现拖拽改变元素大小
2016/12/14 Javascript
浅谈JavaScript正则表达式-非捕获性分组
2017/03/08 Javascript
基于jQuery实现瀑布流页面
2017/04/11 jQuery
js实现简易聊天对话框
2017/08/17 Javascript
node.js学习之事件模块Events的使用示例
2017/09/28 Javascript
opencv 识别微信登录验证滑动块位置
2018/08/07 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
Python3实现从文件中读取指定行的方法
2015/05/22 Python
浅谈python爬虫使用Selenium模拟浏览器行为
2018/02/23 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
2018/05/02 Python
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2019/02/16 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
从训练好的tensorflow模型中打印训练变量实例
2020/01/20 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
Tiqets荷兰:出售欧洲最美丽的景点和博物馆门票
2018/01/09 全球购物
红色连衣裙精品店:Red Dress Boutique
2018/08/11 全球购物
《日月潭》教学反思
2014/02/28 职场文书
联欢晚会主持词
2014/03/25 职场文书
车辆工程专业求职信
2014/04/28 职场文书
德育标兵事迹材料
2014/08/24 职场文书
2014年教师党员自我评议
2014/09/19 职场文书
单位委托书
2014/10/15 职场文书
《海上日出》教学反思
2016/02/23 职场文书
Vue如何实现组件间通信
2021/05/15 Vue.js
MySQL创建管理LIST分区
2022/04/13 MySQL
MySQL导致索引失效的几种情况
2022/06/25 MySQL