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执行.SQL文件
Jul 05 PHP
php根据操作系统转换文件名大小写的方法
Feb 24 PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 PHP
ci检测是ajax还是页面post提交数据的方法
Nov 10 PHP
PHP中__FILE__、dirname与basename用法实例分析
Dec 01 PHP
PHP新建类问题分析及解决思路
Nov 19 PHP
必须收藏的23个php实用代码片段
Feb 02 PHP
Linux环境下php实现给网站截图的方法
May 03 PHP
Windows平台实现PHP连接SQL Server2008的方法
Jul 26 PHP
php封装的pdo数据库操作工具类与用法示例
May 08 PHP
php设计模式之职责链模式定义与用法经典示例
Sep 19 PHP
thinkphp5实现微信扫码支付
Dec 23 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
深入解析php模板技术原理【一】
2008/01/10 PHP
php完全过滤HTML,JS,CSS等标签
2009/01/16 PHP
实例分析PHP中PHPMailer发邮件
2017/12/13 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
JavaScript的9个陷阱及评点分析
2008/05/16 Javascript
轻量级 JS ToolTip提示效果
2010/07/20 Javascript
jQuery中siblings()方法用法实例
2015/01/08 Javascript
javascript实现按回车键切换焦点
2015/02/09 Javascript
jquery实现的蓝色二级导航条效果代码
2015/08/24 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
2015/10/10 Javascript
小白谈谈对JS原型链的理解
2016/05/03 Javascript
bootstrap基础知识学习笔记
2016/11/02 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
php 修改密码实现代码
2017/05/24 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
浅谈node.js 命令行工具(cli)
2018/05/10 Javascript
Python日志模块logging简介
2015/04/13 Python
Python查找第n个子串的技巧分享
2018/06/27 Python
python Pandas如何对数据集随机抽样
2019/07/29 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
python+Django+pycharm+mysql 搭建首个web项目详解
2019/11/29 Python
Django之腾讯云短信的实现
2020/06/12 Python
导致python中import错误的原因是什么
2020/07/01 Python
Python实现简单猜数字游戏
2021/02/03 Python
使用CSS3滤镜的filter:blur属性制作毛玻璃模糊效果的方法
2016/07/08 HTML / CSS
为什么在使用动态 SQL 语句时必须为低层数据库对象授予权限
2012/12/13 面试题
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
教师试用期自我鉴定
2014/02/12 职场文书
培训协议书范本
2014/04/22 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
2015年管理人员工作总结
2015/05/13 职场文书
2015年幼儿园学前班工作总结
2015/05/18 职场文书
神州牡丹园的导游词
2019/11/20 职场文书