Я просматривал документацию по PHP ob_get_status функции и нашел следующее:
Возвращаемые значения:
Если звонили без full_status параметр или с full_status знак равно
ЛОЖНЫЙ возвращается простой массив со следующими элементами:Array ( [level] => 2 [type] => 0 [status] => 0 [name] => URL-Rewriter [del] => 1 )
Все кажется довольно ясным, однако все интернет-сети, кажется, не могут ответить на один вопрос, который возник — Как я могу установить имя выходного буфера?
Возможно ли это сделать? Я не могу найти никакой подсказки ни в самой документации, ни где-либо еще.
Однако в документации упоминается, что
name = Имя активного обработчика вывода или «обработчик вывода по умолчанию», если
ни один не установлен
который в значительной степени подразумевает это можно установить как угодно.
Ребята, у вас есть идеи, если это можно сделать? Любая помощь будет очень признательна.
Используя 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)
}
Вы не можете установить имя. Он печатает имя обратного вызова.
Если ваш обратный вызов является функцией с именем foo_bar:
[name] => "foo_bar"
Если ваш обратный вызов является методом foo_bar класса кульминация:
[name] => "Acme::foo_bar"
Если ваш обратный вызов является анонимной функцией:
[name] => "Closure::__invoke"
Имя, которое вы устанавливаете в выходном буфере, является именем обработчика вывода, который вызывается, когда он очищается.
Например
ob_start('my_buffer');function my_buffer($buff){
return str_replace(":)","<img src=\"smiley\"/>",$buff);
}