首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | linux相关 | linux认证 | 下载中心 | 专题
oklinux
 系统管理:中文环境 系统管理 桌面应用 内核技术 Linux基础:安装配置 常用命令 经验技巧 软件应用 Linux数据库:Mysql POSTGRE
 网络管理:网络安全 网络应用 Linux服务器 编程开发:PHP CC++ Python Perl SHELL 嵌入式开发 | PHP基础 PHP技巧 PHP应用 PHP文摘
 首页 linux资讯动态 Linux专题 | 其他Unix Linux解决方案 硬件相关 Linux认证 企业应用 Apache | 相关下载:软路由 参考手册 开发工具
 → 当前位置:首页>编程开发>php>php技巧>正文

Smarty中的ob_start问题

OKLinux www.oklinux.cn 2007-04-11 来源:oklinux收集整理 会员收藏 游客收藏


近日升级php 4.3.10 到 4.4.6,遭遇到一个奇怪的问题。描述如下:
Linux Redhat AS4, Apache 1.3.37, PHP 4.4.6, Smarty 2.6.3 环境中,只要在调用 Smarty 的 display() 函数之前有任何诸如
echo/print/print_r 等输出,那么整个输出结果就变成空白页面。一开始以为是版本升级导致的问题,遂换成旧版本,问题依旧。也怀疑到是否因为 SQUID 缓存引起的,于是直接走 Apache 端口,还是那样。把 PHP 的 error_reporting 改成 E_ALL,重启,没看到任何报错,但是问题依旧如此...这时已经有点烦躁了。 以前也从来没碰到过如此BT之问题,百思不得其解,干脆重启机器吧,可还是那样...
把保存cache的目录权限设置成777,把cache清除,禁用cache...能想得到的都做了,可是,结果还是那样...
没办法,那只好debug调试程序了吧,于是就跟踪 Smarty 的源代码中的 display() 函数,发现调用了 ob 系列函数,于是怀疑和它们有关>系,于是关闭 ob 功能,问题消失。
究其原因,原来是在 Smarty 中调用了 ob_start() 函数,并且附带了参数 'ob_gzhandler',代码段如下:

@ob_start('ob_gzhandler');
$this->fetch($resource_name, $cache_id, $compile_id, true);
$content = @ob_get_contents();
if($content)
{
@ob_end_clean();
@ob_start('ob_gzhandler');
echo $content;
@ob_end_flush();
}

在这里,指定输出缓存(output_handler)要调用了 ob_gzhandler 函数。然而,在 php.ini 中的 output_handler
选项却没有打开,也就是无法支持 output_handler 了。打开 php.ini 文件,修改如下内容:

output_handler = ob_gzhandler;

指定 output_handler 的默认处理函数为 ob_gzhandler。重启 Apache,一切 OK。



上一篇:从入门到精通---初学PHP和MySQL一   下一篇:Linux环境中的Mod_perl编程介绍
收藏于收藏夹】 【评论】 【推荐】 【投稿】 【打印】 【关闭

相关文章
·从入门到精通---初学PHP和MySQL一
·PHP网站漏洞的相关总结
·内嵌式的语言PHP应用技巧七则
·使用PHP5.0轻松解析XML文档(1)
·PHP也可以当成ShellScript使用
·从入门到精通---初学PHP和MySQL三
·PHP优化及高效提速问题小结
·PHP脚本:随心所欲的代码逐渐流行
·如何正确理解PHP的错误信息
·浅谈Windows下PHP4.0与oracle8的连接设置
发表评论
密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。)
站内搜索
阅读排行榜
·PHP 应用程序配置模式
·用 PHP 读取文件的正确方
·PHP面向对象编程快速入门
·五个常见 PHP 数据库问题
·用 PHP V4 开发的代码迁移
·利用单元测试对PHP 代码进
·用Pear加速PHP程序开发
·使用PHP 快速生成Flash 动
·如何用PHP调用自己编写的C
·用PHP在Linux上读取输入并
最新文章
·从入门到精通---初学PHP和
·PHP网站漏洞的相关总结
·内嵌式的语言PHP应用技巧
·使用PHP5.0轻松解析XML文
·PHP也可以当成ShellScript
·从入门到精通---初学PHP和
·PHP优化及高效提速问题小
·PHP脚本:随心所欲的代码
·如何正确理解PHP的错误信
·浅谈Windows下PHP4.0与ora
·PHP开发中文件操作疑难问
·专家称PHP语言漏洞是产生
·Linux下的编程PHP高级技巧
·实用比较:JAVA事件模式下
·如何使用PHP和PEAR进行不

设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2007 All rights reserved OKLinux.Cn 版权所有
合作联系 QQ:18743986 Email:arlan8005#163.com