php生成的html meta和link标记在body标签里 顶部有个空行


Posted in PHP onMay 18, 2010

1.php中用smarty模板生成的html在浏览器中顶部有一空行.

2.用firedebug发现 meta和link标记在body标签里.

本机上wmap运行没事, 送到远程服务器上是IASP的服务, 会出现上述bug.

看了下源文件, 文本一样的. 但保存时提示编码问题.估计是utf-8问题了.

在网上找了下, 是utf-8 BOM问题.

解决方法: 用UltraEdit32把smarty模板文件即引用的模板文件(如include的header,footer等文件)全另存为无BOM的utf-8文件.

其它补充说明:

页面采用UTF8编码,头部和尾部用了模板包含文档的method,结果头部和尾部无端端各多出一个约10px的空行,什么也没有。

原因是全部采用utf8编码,包含文档的时候,最后的二进制流中包含了多次UTF8 BOM标记,IE不能正常解析包含多个UTF8 BOM 标记的页面,直接替换成实际显示的回车,这样导致一个空行,而firefox却没有这个问题。

故如果模板采用包含的method包含多个utf8文档需要用ultraedit保存时另存为功能 选择utf8 无bom格式保存即可。

另外,如果中文页面在html head标记中将title标记放在<meta http-equiv=”Content-type” Content=”text/html; Charset=UTF-8″ />前面会导致页面空白。

所以utf8页面应该使用标准顺序

<meta http-equiv=”Content-type” Content=”text/html; Charset=UTF-8″ /> 
<meta http-equiv=”Content-language” Content=”zh-CN” /> 
<meta name=”robots” Content=”index,follow” /> 
<meta name=”keywords” Content=”" /> 
<meta name=”desCription” Content=”" /> 
<meta name=”rating” Content=”general” /> 
<meta name=”author” Content=”" /> 
<meta name=”Copyright” Content=”" /> 
<meta name=”generator” Content=”" /> 
<title></title>

BOM头:\xEF\xBB\xBF,PHP脚本4、5尚对BOM无视,所以在解析前直接输出。

对此 w3.org 标准 FAQ 中对此问题有一个专门的描述:

www.w3.org/International/questions/qa-utf8-bom

具体如下:

在UCS 编码中有一个叫做”ZERO WIDTH NO-BREAK SPACE”的char,它的编码是FEFF。而FFFE在UCS中是不存在的char,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 char”ZERO WIDTH NO-BREAK SPACE”。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little- Endian的。因此char”ZERO WIDTH NO-BREAK SPACE”又被称作BOM。

UTF-8不需要BOM来表明字节顺序,但可以用BOM来表明编码方式。char”ZERO WIDTH NO-BREAK SPACE”的UTF-8编码是EF BB BF。所以如果接收者收到以EF BB BF开头的字节流,就知道这是UTF-8编码了。

Windows就是使用BOM来标记文本文档的编码方式的操作Systam: WindowsXP Professional , 缺省char集:中文

1) notepad : 可以自动识别出没有带 bom 的 utf-8 编码格式文档,但不可以控制保存文档时是否添加 bom , 如果保存文档,那么会统一添加 bom 。

2)editplus : 不能自动识别出没有 bom 的 utf-8 编码格式文档,文档保存时,选择UTF-8 格式,不会在文档头写上 BOM header.

3) UltraEdit : 对于char编码的功能最为强大, 可以自动识别带 bom 和不带 bom 的 utf-8 文档 (可以配置) ; 保存的时候可以通过配置选择是否添加 bom.
(特别需要注意的是,保存一个新建立的文档时,需要选择另存为 utf-8 no bom 格式)

后来发现 Notepad ++ 也对于 utf-8 bom 支持比较好,推荐大家使用。

PHP 相关文章推荐
PHP 的 __FILE__ 常量
Jan 15 PHP
[原创]效率较高的php下读取文本文件的代码
Jul 02 PHP
php检测文件编码的方法示例
Apr 25 PHP
PHP mkdir()无写权限的问题解决方法
Jun 19 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
PHP转盘抽奖接口实例
Feb 09 PHP
php通过rmdir删除目录的简单用法
Mar 18 PHP
php实现QQ空间获取当前用户的用户名并生成图片
Jul 25 PHP
php基于PDO连接MSSQL示例DEMO
Jul 13 PHP
PHP大神的十大优良习惯
Sep 14 PHP
php基于单例模式封装mysql类完整实例
Oct 18 PHP
php array_pop 删除数组最后一个元素实例
Nov 02 PHP
PHP 工厂模式使用方法
May 18 #PHP
在PHP中使用反射技术的架构插件使用说明
May 18 #PHP
PHP 写文本日志实现代码
May 18 #PHP
php 随机记录mysql rand()造成CPU 100%的解决办法
May 18 #PHP
PHP array_flip() 删除重复数组元素专用函数
May 16 #PHP
mysql下创建字段并设置主键的php代码
May 16 #PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
May 16 #PHP
You might like
Smarty结合Ajax实现无刷新留言本实例
2007/01/02 PHP
php中header跳转使用include包含解决参数丢失问题
2015/05/08 PHP
php使用PDO获取结果集的方法
2017/02/16 PHP
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
javascript window对象属性整理
2009/10/24 Javascript
Javascript 闭包引起的IE内存泄露分析
2012/05/23 Javascript
Json对象与Json字符串互转(4种转换方式)
2013/03/27 Javascript
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
让JavaScript和其它资源并发下载的方法
2014/10/16 Javascript
JavaScript中的ubound函数使用实例
2014/11/04 Javascript
使用jquery 简单实现下拉菜单
2015/01/14 Javascript
JS判断网页广告是否被浏览器拦截过滤的代码
2015/04/05 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
2015/05/14 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
JavaScript中Object.prototype.toString方法的原理
2016/02/24 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
jquery dialog获取焦点的方法
2017/02/09 Javascript
javascript图片预览和上传(兼容IE)
2017/03/15 Javascript
jquery使用iscorll实现上拉、下拉加载刷新
2017/10/26 jQuery
r.js来合并压缩css文件的示例
2018/04/26 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
2019/01/21 Javascript
详解vue.js移动端配置flexible.js及注意事项
2019/04/10 Javascript
JavaScript仿京东秒杀倒计时
2020/03/17 Javascript
vue项目启动出现cannot GET /服务错误的解决方法
2020/04/26 Javascript
浅谈python for循环的巧妙运用(迭代、列表生成式)
2017/09/26 Python
python安装requests库的实例代码
2019/06/25 Python
Python 数据可视化pyecharts的使用详解
2019/06/26 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
Django密码存储策略分析
2020/01/09 Python
中国电子产品批发商/跨境电商/外贸网:Sunsky-online
2020/04/20 全球购物
主办会计岗位职责
2014/03/13 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
Python 阶乘详解
2021/10/05 Python
MySQL一劳永逸永久支持输入中文的方法实例
2022/08/05 MySQL