php模板中出现空行解决方法


Posted in PHP onMarch 08, 2011

在本地也解决了,但是上传到服务器依然有空行,搞了一个上午,都快崩溃了,最后决定自己想办法解决,经过几个小时的摸索终于有了完美解决方法了。
运用php显示缓冲区显示原理,成功去掉
在php的头上加一行ob_start(); 然后再模板显示前加个ob_end_clean(); 在模板显示后加个ob_end_flush();
这样问题就解决了,现在给出整体结构实例代码:

<?php 
ob_start(); //此处为php逻辑操作 
ob_end_clean(); //此处为php模板显示 
ob_end_flush(); 
?>

其它网友的补充:
开发中一直没办法解决的一个问题,收藏

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

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

故如果模板采用包含的方法包含多个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,PHP4、5尚对BOM无视,所以在解析前直接输出。
对此 w3.org 标准 FAQ 中对此问题有一个专门的描述:

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

具体如下:

在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编码了。

Windows就是使用BOM来标记文本文件的编码方式的操作系统: WindowsXP Professional , 缺省字符集:中文

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

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

3) UltraEdit : 对于字符编码的功能最为强大, 可以自动识别带 bom 和不带 bom 的 utf-8 文件 (可以配置) ; 保存的时候可以通过配置选择是否添加 bom.

(特别需要注意的是,保存一个新建立的文件时,需要选择另存为 utf-8 no bom 格式)

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

PHP 相关文章推荐
php auth_http类库进行身份效验
Mar 19 PHP
phpinfo 系统查看参数函数代码
Jun 05 PHP
php中批量替换文件名的实现代码
Jul 20 PHP
php include和require的区别深入解析
Jun 17 PHP
php中session使用示例
Mar 29 PHP
基于递归实现的php树形菜单代码
Nov 19 PHP
PHP函数extension_loaded()用法实例
Jan 19 PHP
php实现字符串翻转的方法
Mar 27 PHP
php中JSON的使用方法
Apr 30 PHP
PHP中的类型约束介绍
May 11 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
Sep 15 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
在MongoDB中模拟Auto Increment的php代码
Mar 06 #PHP
PHP数组交集的优化代码分析
Mar 06 #PHP
php下安装配置fckeditor编辑器的方法
Mar 02 #PHP
PHP如何抛出异常处理错误
Mar 02 #PHP
php中实现记住密码自动登录的代码
Mar 02 #PHP
防止用户利用PHP代码DOS造成用光网络带宽
Mar 01 #PHP
php Smarty 字符比较代码
Feb 27 #PHP
You might like
一个更简单的无限级分类菜单代码
2007/01/16 PHP
PHP实现Socket服务器的代码
2008/04/03 PHP
针对多用户实现头像上传功能PHP代码 适用于登陆页面制作
2016/08/17 PHP
PHP迭代与递归实现无限级分类
2017/08/28 PHP
PHP实现数组转JSon和JSon转数组的方法示例
2018/06/14 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
document.open() 与 document.write()的区别
2007/08/13 Javascript
StringTemplate遇见jQuery冲突的解决方法
2011/09/22 Javascript
JS预览图像将本地图片显示到浏览器上
2013/08/25 Javascript
选择复选框按钮置灰否则按钮可用
2014/05/22 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
AngularJS 过滤与排序详解及实例代码
2016/09/14 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
JS计算距当前时间的时间差实例
2017/12/29 Javascript
Vue中常用rules校验规则(实例代码)
2019/11/14 Javascript
微信小程序:报错(in promise) MiniProgramError
2020/10/30 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
Python实现的一个简单LRU cache
2014/09/26 Python
python实现多线程暴力破解登陆路由器功能代码分享
2015/01/04 Python
详解Django通用视图中的函数包装
2015/07/21 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
使用Python编写Prometheus监控的方法
2018/10/15 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
通过shell+python实现企业微信预警
2019/03/07 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
python实现可下载音乐的音乐播放器
2020/02/25 Python
CSS3实现超酷的黑猫警长首页
2016/04/26 HTML / CSS
新任教师自我鉴定
2014/02/24 职场文书
《有趣的发现》教学反思
2014/04/15 职场文书
五年级学生评语
2014/04/22 职场文书
企业委托书范本
2014/09/13 职场文书
2014年电教工作总结
2014/12/19 职场文书
学校百日安全活动总结
2015/05/07 职场文书
公司备用金管理制度
2015/08/04 职场文书
Python中tkinter的用户登录管理的实现
2021/04/22 Python
聊聊SpringBoot自动装配的魔力
2021/11/17 Java/Android