Drupal 7 建站学习手记(一):PHP输出的页面多出空行的问题
来源:互联网 发布:淘宝现在是什么模式 编辑:程序博客网 时间:2024/05/22 02:02
本博客已弃用,更新版本请访问 www.dss886.com
最近接到一个活,是用Drupal7搭一个网站,实现简单的分角色发布文章的功能,架构是XAMPP+PHP+MySQL+Drupal7。
以下是我在实际项目中遇到的一些问题和解决办法。
一、UTF8无BOM格式和带BOM格式。
我下载了一个 Drupal 7 的主题,然后覆写它的模板,以实现自定义布局。
覆写完以后发现,页面上方会多出一栏空行。
正常的网页:
不正常的网页:顶部多了一行空行:
F12审查元素看看:
这让我百思不得其解啊,拿修改前的和修改后的文件一行一行的对比,完全没有问题啊!
然后突然看到了的底下状态栏,两个文件好像不一样:
UTF-8 with BOM是什么东西?试着改回成UTF-8试试,改回来果然就好了!
百度了一下,UTF-8 BOM:
BOM——Byte Order Mark,就是字节序标记 在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE"。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little- Endian的。因此字符"ZERO WIDTH NO-BREAK SPACE"又被称作BOM。 UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。字符"ZERO WIDTH NO-BREAK SPACE"的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。 UTF- 8编码的文件中,BOM占三个字节。如果用记事本把一个文本文件另存为UTF-8编码方式的话,用UE打开这个文件,切换到十六进制编辑状态就可以看到开 头的FFFE了。这是个标识UTF-8编码文件的好办法,软件通过BOM来识别这个文件是否是UTF-8编码,很多软件还要求读入的文件必须带BOM。可是,还是有很多软件不能识别BOM。在Firefox早期的版本里,扩展是不能有BOM的,不过Firefox 1.5以后的版本已经开始支持BOM了。现在又发现,PHP也不支持BOM。PHP在设计时就没有考虑BOM的问题,也就是说他不会忽略UTF-8编码的文件开头BOM的那三个字符。
果然,PHP是不支持BOM的,会把BOM头显示成一个空字符。
为什么我会把修改过的文件保存成有BOM的UTF-8呢?
想到项目刚开始的时候我用的是Notepad++,后来用的是Sublime Text 3,会不会是编辑器的问题?
果不其然,Notepad++的保存格式是这样的:
Sublime Text 3的保存格式是这样的:
摔!两个编辑器默认的UTF-8根本不是一个东西啊!
从此成了Notepad++一生黑。。。。
0 0
- Drupal 7 建站学习手记(一):PHP输出的页面多出空行的问题
- Drupal 7 建站学习手记(三):Nivo Slider模块报错的问题
- Drupal 7 建站学习手记(五):QuickTabs模块内的元素无法溢出的问题
- PHP输出空行、空格的问题
- PHP输出空行、空格的问题
- Drupal 7 建站学习手记(四):如何修改Nivo Slider模块的宽高
- PHP文件的输出中出现空行
- Drupal 7 建站学习手记(二):如何将Custom Search模块水平摆放
- 控制台输出有空行的文件,输出时保留空行
- Drupal 7创建一个新的页面?
- php头部空行|utf8头部空行|关于bom以及utf-8的问题
- php头部空行|utf8头部空行|关于bom以及utf-8的问题
- JQuery Mobile 开发学习手记(一):JS批量设置按钮动作的问题
- drupal 7 views php $data的数据
- php:去掉多余的空行
- PHP 大文档 输出时的空白页面 问题
- drupal的views学习
- drupal的学习
- 归并排序 tips && codes
- 面向程序员的数据库访问性能优化法则
- setCompoundDrawables与setCompoundDrawablesWithIntrinsicBounds的区别
- 获得字典表中相应的数据(静态方法)
- MYSQL 日期函数大全
- Drupal 7 建站学习手记(一):PHP输出的页面多出空行的问题
- java多生产者消费者
- oracle利用游标 往表中批量插入数据
- spring mvc例子
- Hello World
- 配置apache+php+mysql
- 【PB】从数据窗口获得数据的方法总结
- 磁盘分区表备份与恢复
- c++学习笔记之类模板中的友元声明