ob_end_clean также изменяет переменные
Вот пример кода:
ob_start();
include("test.ini");
$string = ob_get_contents();
echo "<br/>";
echo "string: ".$string;
и вывод:
testing = ini
string: testing = ini
Когда я добавлю
ob_end_clean();
в конце кода выше нет вывода на экран.
Я, по крайней мере, ожидаю, что строка будет отображаться на экране? Почему этого не видно?
3 ответа
ob_start(); буферизация вывода во внутренний буфер начинается не (screen), затем при добавлении ob_get_contents (); он копирует вывод из внутреннего буфера еще ничего не печатается, а когда ob_end_clean (); интерпретируется, он очистит всю внутреннюю буферную память, ничего не выводится на экран.
Начиная с ob_start(); в ob_end_clean (); ничего не будет напечатано, я использую этот метод, когда включаю файл для предотвращения печати пробелов перед отправкой заголовка.
Смотрите разницу между ob_get_clean (), ob_end_flush () и ob_end_clean ().
ob_get_clean
получает текущее содержимое буфера и удаляет текущий выходной буфер.
ob_end_flush
удаляет содержимое, но сначала выводит буфер.
ob_end_clean
отбрасывает содержимое самого верхнего выходного буфера. Это ничего не вернет.