如何在php中设置输出缓冲区名称?
我一直在浏览PHP的函数的文档,发现如下内容: 返回值: 如果在不使用full_status参数或使用full_status参数的情况下调用= FALSE返回包含以下元素的简单数组:如何在php中设置输出缓冲区名称?,php,output-buffering,missing-features,Php,Output Buffering,Missing Features,我一直在浏览PHP的函数的文档,发现如下内容: 返回值: 如果在不使用full_status参数或使用full_status参数的情况下调用= FALSE返回包含以下元素的简单数组: Array ( [level] => 2 [type] => 0 [status] => 0 [name] => URL-Rewriter [del] => 1 ) 一切似乎都很清楚,但所有的互联网似乎都无法回答出现的一个问题——如何设置输出
Array (
[level] => 2
[type] => 0
[status] => 0
[name] => URL-Rewriter
[del] => 1
)
一切似乎都很清楚,但所有的互联网似乎都无法回答出现的一个问题——如何设置输出缓冲区的名称?
甚至有可能做到吗?我在文档本身或其他任何地方都找不到任何线索。
然而,文件中提到
name=活动输出处理程序或“默认输出处理程序”的名称(如果有)
没有设置
这几乎意味着可以以某种方式设置它
你们知道能不能做到吗?非常感谢您的帮助。在输出缓冲区上设置的名称是刷新时调用的输出处理程序的名称 乙二醇
ob_start('my_buffer');
函数my_缓冲区($buff){
返回stru_replace(“:)”,“,$buff);
}
您无法设置名称。它打印回调的名称
如果回调函数名为foo_bar:
如果回调是类Acme的方法foo_bar:
如果您的回调函数是匿名函数:
[name] => "Closure::__invoke"
通过使用,您可以在PHP
中打开输出缓冲
请注意,函数具有这样的签名:
bool ob\u start([callable$output\u callback=NULL[,int$chunk\u size]=
0[,int$flags=PHP\u OUTPUT\u HANDLER\u STDFLAGS]])
可以将命名函数作为有效回调传递
例如:
<?php
function test_handler($a) {
return $a;
}
ob_start('test_handler');
var_dump(ob_get_status());
你真的不能设定一个名字
name
将等于处理输出缓冲的函数名,例如mb\u output\u handler
。谢谢,这很有效。我想知道为什么文件中没有提到这一点。
[name] => "Acme::foo_bar"
[name] => "Closure::__invoke"
<?php
function test_handler($a) {
return $a;
}
ob_start('test_handler');
var_dump(ob_get_status());
array(7) {
["name"]=>
string(12) "test_handler"
["type"]=>
int(1)
["flags"]=>
int(113)
["level"]=>
int(0)
["chunk_size"]=>
int(0)
["buffer_size"]=>
int(16384)
["buffer_used"]=>
int(0)
}