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

如果您在修改任何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)

(0)

相关推荐

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

    如果您在修改任何PHP文件后发生: 不能登入或者不能登出:     页顶出现一条空白:     页顶出现错误警告:     其它不正常的情况.     则多半是编辑器的问题. 本程序采用UTF-8编码.现在几乎所有的文本编辑软件都可以显示并编辑UTF-8编码的文件.但是很遗憾,其中很多软件的表现并不理想. 类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM).它是一串隐藏的字符,用于让记事本等编

  • MySQL 请选择合适的列

    思维导图 点击图片,可查看大图. 介绍 情况:如果你的表结构设计不良或你的索引设计不佳,那么请你优化你的表结构设计和给予合适的索引,这样你的查询性能就能提高几个数量级.--数据越大,索引的价值越能体现出来. 我们要提高性能,需要考虑的因素: 1.设计架构 2.设计索引 3.评估查询性能 今天要讲的是表列的设计,暂不谈索引设计.我会在下一章讲索引设计. 选择数据类型 选择正确的数据类型,对于提高性能至关重要. 下面给出几种原则,有利于帮助你选择何种类型. 1.更小通常更好. 使用最小的数据类型.-

  • C++模板元编程实现选择排序

    前言 模板在C++一直是比较神秘的存在. STL 和 Boost 中都有大量运用模板,但是对于普通的程序员来说,模板仅限于使用.在一般的编程中,很少会有需要自己定义模板的情况.但是作为一个有理想的程序员,模板是一个绕不过去的坎.由于C++标准的不断改进,模板的能力越来越强,使用范围也越来越广. 在C++11中,模板增加了 constexpr ,可变模板参数,回返类型后置的函数声明扩展了模板的能力:增加了外部模板加快了模板的编译速度:模板参数的缺省值,角括号和模板别名使模板的定义和使用变得更加的简

  • eWebEditor 请选择一个有效的文件的解决方法

    eWebEditor上传个别图片时出现:请选择一个有效的文件,支持的格式有(GIF|JPG|JPEG|BMP|PNG)!,让我,在WINDOWSXP下使用该组件正常,却在WINDOWS2003上提示,原来是在系统上出了问题.后来GOOGLE了一下才知道是2003的IIS出现了问题,因为是2003的系统,它对ASP的上传文件做出了200K的限制,解决问题方法如下 : 先打开:Internet 信息服务(IIS)管理器 (本地计算机 )---- 属性 ----允许直接编辑配置数据库(N) 一定要勾先

  • Python编程使用tkinter模块实现计算器软件完整代码示例

    Python 提供了多个图形开发界面的库.Tkinter就是其中之一. Tkinter 模块(Tk 接口)是 Python 的标准 Tk GUI 工具包的接口 .Tk 和 Tkinter 可以在大多数的 Unix 平台下使用,同样可以应用在 Windows 和 Macintosh 系统里.Tk8.0 的后续版本可以实现本地窗口风格,并良好地运行在绝大多数平台中. 该计算器使用Python tkinter模块开发 效果如下图 import tkinter #导入tkinter模块 root = t

  • PHP编程最快明白(第一讲 软件环境和准备工作)

    下载安装好就可以用,这样的集成开发环境很多,如果你已经按照其他书安装了PHP+Mysql开发环境,调试过就不用改了.我是租的空间,本地调试就没关系啦,效果一样的. 我用的代码编写软件是dreamweaver.说实话,我只使用其代码高亮和CSS功能,全部代码都是手工编写的.你用记事本或者Zend Studio等都可以(但一旦遇到问题别怪我,因为你也可以在LUNIX里面看我的教程和编写程序,甚至坐在太空船上学习,前提是不要违背我写这本书的目的.) ftp上传工具可以用:FlashFXP等随便一个啦.

  • Postgresql 如何选择正确的关闭模式

    停止数据库的命令: pg_ctl stop -D $PGDATA [-m shutdown-mode] shutdown-mode有如下几种模式: 1. smart: 等所有的连接中止后,关闭数据库.如果客户端连接不终止, 则无法关闭数据库. 开启一个空会话: [root@localhost ~]# su - postgres [postgres@localhost ~]$ psql psql (9.4.4) Type "help" for help. postgres=# 用smar

  • PHP利用APC模块实现大文件上传进度条的方法

    php 大文件带进度的上传,一直是一个令php程序员很苦恼的问题.查询baidu .Google ,大体做带进度的上传方式为:flash+php,socket,apc+php等,下面我介绍了apc +php+ajax制作的带进度的上传,并贴出源码,希望对大家有用. Alternative PHP Cache(APC)是 PHP 的一个免费公开的优化代码缓存.它用来提供免费,公开并且强健的架构来缓存和优化 PHP 的中间代码. 在使用apc时候,先必须使用安装apc 模块. 第一步:下载php_a

  • js+html5实现可在手机上玩的拼图游戏

    本文实例讲述了js+html5实现可在手机上玩的拼图游戏.分享给大家供大家参考.具体如下: 手机版的拼图.pc上用Chrome 或者 Firefox var R=(function(){ /*右边菜单*/ function fa(){ if(mo.style.right!='0px'){ mo.style.right='0px'; mco.rcss('','cmck'); }else{ mo.style.right='-100px'; mco.rcss('cmck',''); } } on(mc

  • C#实现上传照片到物理路径,并且将地址保存到数据库的小例子

    效果: 思路: 首先,获取图片物理地址,然后进行判断将图片保存到文件夹下,再将图片的信息保存到数据库. 数据库: 复制代码 代码如下: create table image1(ID int identity(1,1) primary key,ImageName varchar(100) ,ImageType varchar(20),ImagePath varchar(200)) 代码: 复制代码 代码如下: <body>    <form id="form1" run

随机推荐