如何在 php 中设置输出缓冲区名称?
How can I set an output buffer name in php?
我浏览了 PHP 的 ob_get_status 函数的文档,发现了以下内容:
Return Values:
If called without the full_status parameter or with full_status =
FALSE a simple array with the following elements is returned:
Array (
[level] => 2
[type] => 0
[status] => 0
[name] => URL-Rewriter
[del] => 1
)
一切似乎都很清楚,但是所有的互联网似乎都无法回答出现的一个问题 - 如何设置输出缓冲区的名称?
甚至可以做到吗?我在文档本身或其他任何地方都找不到任何线索。
但是文档提到
name = Name of active output handler or ' default output handler' if
none is set
这几乎暗示可以以某种方式设置它。
你们知道这是否可以做到吗?任何帮助将不胜感激。
您在输出缓冲区上设置的名称是刷新时调用的输出处理程序的名称。
例如
ob_start('my_buffer');
function my_buffer($buff){
return str_replace(":)","<img src=\"smiley\"/>",$buff);
}
您无法设置名称。它打印回调的名称。
如果您的回调函数名为 foo_bar:
[name] => "foo_bar"
如果您的回调是 foo_bar 的方法 class Acme:
[name] => "Acme::foo_bar"
如果您的回调是匿名函数:
[name] => "Closure::__invoke"
通过使用 ob_start
,您可以在 PHP
中打开输出缓冲。
注意函数有这样的签名:
bool ob_start ([ callable $output_callback = NULL [, int $chunk_size =
0 [, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS ]]] )
您可以将命名函数作为有效回调传递。
例如:
<?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)
}
我浏览了 PHP 的 ob_get_status 函数的文档,发现了以下内容:
Return Values:
If called without the full_status parameter or with full_status = FALSE a simple array with the following elements is returned:
Array ( [level] => 2 [type] => 0 [status] => 0 [name] => URL-Rewriter [del] => 1 )
一切似乎都很清楚,但是所有的互联网似乎都无法回答出现的一个问题 - 如何设置输出缓冲区的名称?
甚至可以做到吗?我在文档本身或其他任何地方都找不到任何线索。 但是文档提到
name = Name of active output handler or ' default output handler' if none is set
这几乎暗示可以以某种方式设置它。
你们知道这是否可以做到吗?任何帮助将不胜感激。
您在输出缓冲区上设置的名称是刷新时调用的输出处理程序的名称。
例如
ob_start('my_buffer');
function my_buffer($buff){
return str_replace(":)","<img src=\"smiley\"/>",$buff);
}
您无法设置名称。它打印回调的名称。
如果您的回调函数名为 foo_bar:
[name] => "foo_bar"
如果您的回调是 foo_bar 的方法 class Acme:
[name] => "Acme::foo_bar"
如果您的回调是匿名函数:
[name] => "Closure::__invoke"
通过使用 ob_start
,您可以在 PHP
中打开输出缓冲。
注意函数有这样的签名:
bool ob_start ([ callable $output_callback = NULL [, int $chunk_size = 0 [, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS ]]] )
您可以将命名函数作为有效回调传递。
例如:
<?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)
}