我使用输出缓冲来进行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
作为处理程序不能像压缩已压缩的数据.