加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

php – 如何确定wether ob_start();已经被称为

发布时间:2020-05-25 09:32:42 所属栏目:PHP 来源:互联网
导读:我使用输出缓冲来进行gzip压缩,并访问 PHP脚本中的内容: if(!ob_start(ob_gzhandler)) ob_start(); 现在如果该脚本被包含在另一个脚本中,其中ob_start()已经在使用中,我会发出警告: Warning: ob_start() [ref.outcontrol]: output handler ‘ob_gzhandler’

我使用输出缓冲来进行gzip压缩,并访问 PHP脚本中的内容:

if(!ob_start("ob_gzhandler")) ob_start();

现在如果该脚本被包含在另一个脚本中,其中ob_start()已经在使用中,我会发出警告:

Warning: ob_start() [ref.outcontrol]: output handler ‘ob_gzhandler’ cannot be used twice in filename on line n

所以我想测试一下ob_start()已经被调用了.我认为ob_get_status()应该是我需要的,但是在测试中最好的方法是什么?

ob_get_level返回有效输出控制处理程序的数量,ob_list_handlers返回这些处理程序的升序.所以你可以这样做:
if (!in_array('ob_gzhandler',ob_list_handlers())) {
    ob_start('ob_gzhandler');
} else {
    ob_start();
}

虽然一般来说,您可以调用ob_start任意次数,使用ob_gzhandler作为处理程序不能像压缩已压缩的数据.

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读