странный ob_start () поведение - дважды вывод

ob_start (), кажется, не останавливает вывода поэтому, когда я сбрасываю буфер, он сгибает

<?php
ob_start();
echo "Text..... <br />";
echo ob_get_flush();
?>

Выводы

Text..... 
Text..... 

Но я ожидал

Text..... 

Какие-либо идеи?

Спасибо

7
задан JimmyJ 14 July 2010 в 15:06
поделиться

2 ответа

Удалите echo в последней строке.

ob_get_flush() неявно печатает сохраненный вывод, а также возвращает его, поэтому вы печатаете его дважды.

Возможно, вы перепутали ob_get_flush() с ob_get_clean()

12
ответ дан 6 December 2019 в 19:32
поделиться

try:

<?php
ob_start();
echo "Text..... <br />";
ob_get_flush();
?>

from http://php.net/manual/en/function.ob-get-flush.php

Flush the output buffer, return it as a string and turn off output buffering

Flush the output means: it sends the output to the browser or the commandline. Возврат строки означает: он возвращает строку, так что вы можете хранить промытую строку в переменной. И поскольку вы echoing эту строку, вы получаете вывод во второй раз.

1
ответ дан 6 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: