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 相关文章推荐
一个改进的UBB类
Oct 09 PHP
浅析PHP中的UNICODE 编码与解码
Jun 29 PHP
Thinkphp中数据按分类嵌套循环实现方法
Oct 30 PHP
PHP获取一段文本显示点阵宽度和高度的方法
Mar 12 PHP
twig模板常用语句实例小结
Feb 04 PHP
php轻松实现文件上传功能
Mar 03 PHP
PHP批量去除BOM头内容信息代码
Mar 11 PHP
PHP 接入支付宝即时到账功能
Sep 18 PHP
浅谈PHP的数据库接口和技术
Dec 09 PHP
PHP实现mysqli批量执行多条语句的方法示例
Jul 22 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
php获取是星期几的的一些常用姿势
Dec 15 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框架排名
2013/07/04 PHP
JavaScript 学习笔记(五)
2009/12/31 Javascript
js之onload事件的一点使用心得
2013/08/14 Javascript
Jquery使用Firefox FireBug插件调试Ajax步骤讲解
2013/12/02 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
jQuery创建自定义的选择器用以选择高度大于100的超链接实例
2015/03/18 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
js中对函数设置默认参数值的3种方法
2015/10/23 Javascript
JS获取CSS样式(style/getComputedStyle/currentStyle)
2016/01/19 Javascript
javascript cookie的简单应用
2016/02/24 Javascript
Angularjs结合Bootstrap制作的一个TODO List
2016/08/18 Javascript
VueJs 将接口用webpack代理到本地的方法
2017/11/27 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
Vue2.0 事件的广播与接收(观察者模式)
2018/03/14 Javascript
学习Vue组件实例
2018/04/28 Javascript
原生javascript AJAX 三级联动的实现代码
2018/05/04 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
2018/05/17 Javascript
vue-cli3 取消eslint校验代码的解决办法
2020/01/16 Javascript
如何利用node转发请求详解
2020/09/17 Javascript
Python实现的栈、队列、文件目录遍历操作示例
2019/05/06 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
python3实现微型的web服务器
2019/09/03 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
澳大利亚Mocha官方网站:包、钱包、珠宝和配饰
2019/07/18 全球购物
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
IGK Hair官网:喷雾、洗发水、护发素等
2020/11/03 全球购物
中国央视网签名寄语
2014/01/18 职场文书
运动会闭幕式解说词
2014/02/21 职场文书
市场营销战略计划书
2014/05/06 职场文书
商铺门前三包责任书
2014/07/25 职场文书
优秀党支部申报材料
2014/12/24 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
时尚女魔头观后感
2015/06/04 职场文书
基于docker安装zabbix的详细教程
2022/06/05 Servers