如何在php中设置输出缓冲区名称?

如何在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 ) 一切似乎都很清楚,但所有的互联网似乎都无法回答出现的一个问题——如何设置输出

我一直在浏览PHP的函数的文档,发现如下内容:

返回值:

如果在不使用full_status参数或使用full_status参数的情况下调用= FALSE返回包含以下元素的简单数组:

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)
}