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程序时遇到的三个问题
Jan 17 PHP
通过PHP修改Linux或Unix口令的方法分享
Jan 30 PHP
PHP Warning: PHP Startup: Unable to load dynamic library \ D:/php5/ext/php_mysqli.dll\
Jun 17 PHP
一个PHP针对数字的加密解密类
Mar 20 PHP
Destoon旺旺无法正常显示,点击提示“会员名不存在”的解决办法
Jun 21 PHP
php生成html文件方法总结
Dec 01 PHP
WIFI万能钥匙密码查询接口实例
Sep 28 PHP
php正则提取html图片(img)src地址与任意属性的方法
Feb 08 PHP
php面向对象之反射功能与用法分析
Mar 29 PHP
php根据命令行参数生成配置文件详解
Mar 15 PHP
PHP正则之正向预查与反向预查讲解与实例
Apr 06 PHP
PHP sdk实现在线打包代码示例
Dec 09 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
怎样辨别一杯好咖啡
2021/03/03 新手入门
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
PHP配置ZendOpcache插件加速
2019/02/14 PHP
input+select(multiple) 实现下拉框输入值
2009/05/21 Javascript
web页面数据展示新想法(json)
2010/06/08 Javascript
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
js性能优化 如何更快速加载你的JavaScript页面
2012/03/17 Javascript
jQuery实现ichat在线客服插件
2014/12/29 Javascript
Bootstrap Table 在指定列中添加下拉框控件并获取所选值
2017/07/31 Javascript
详解vue 单页应用(spa)前端路由实现原理
2018/04/04 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
2018/12/11 jQuery
JS实现数组深拷贝的方法分析
2019/03/06 Javascript
vue-mugen-scroll组件实现pc端滚动刷新
2019/08/16 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
你应该知道的python列表去重方法
2017/01/17 Python
利用pyinstaller或virtualenv将python程序打包详解
2017/03/22 Python
Python基于高斯消元法计算线性方程组示例
2018/01/17 Python
解决tensorflow模型参数保存和加载的问题
2018/07/26 Python
python复制列表时[:]和[::]之间有什么区别
2018/10/16 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
解决python多线程报错:AttributeError: Can't pickle local object问题
2020/04/08 Python
Window版下在Jupyter中编写TensorFlow的环境搭建
2020/04/10 Python
canvas简易绘图的实现(海绵宝宝篇)
2018/07/04 HTML / CSS
Everything But Water官网:美国泳装品牌
2019/03/17 全球购物
建筑工程实习自我鉴定
2013/09/19 职场文书
暑期实习鉴定
2013/12/16 职场文书
公司端午节活动方案
2014/02/04 职场文书
《这儿真好》教学反思
2014/02/22 职场文书
网管求职信
2014/03/03 职场文书
旅游与环境专业求职信
2014/06/05 职场文书
2015年财务部年度工作总结
2015/05/19 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
Python 恐龙跑跑小游戏实现流程
2022/02/15 Python
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android