[PHP] Работа с буфером вывода
@X
это только для ошибок
это только для ошибок
Да, я это в самом начале делал. Но она выводит вообще всё. Даже результаты типа: успешно обработала 12 строк
Вот тебе пример функции X:
Теперь можешь сам придумать, что делать.
function X {
ob_start;
echo 'xyu';
}Теперь можешь сам придумать, что делать.
И что? Эта функция X вообще из сишной dll (там стековый ob_start вряд ли вызывается)
Проблема в том, что здесь:
echo "A";
X;
echo "B!";
ob_clean;
A и B загасились, а весь кал от X остался! Что за нафиг!
Проблема в том, что здесь:
echo "A";
X;
echo "B!";
ob_clean;
A и B загасились, а весь кал от X остался! Что за нафиг!

Скорее всего, тогда эта X напрямую выводит текст на выход.
Вряд ли тут можно чем-то помочь, всё-таки она работает на более низком уровне, чем php-код.
Вряд ли тут можно чем-то помочь, всё-таки она работает на более низком уровне, чем php-код.
Попробуй сначало вызвать функцию, а после ob_start
Если пхп ошибки не скажет, то пхп точно ни чем не поможет
Если пхп ошибки не скажет, то пхп точно ни чем не поможет
Попробуй сначало вызвать функцию, а после ob_startА откуда может взяться ошибка?
Если пхп ошибки не скажет
Я сделал проще:
ob_start
X;
fwrite($file, "something");
...
ob_end_clean;
......
include($file)
Таким образом выводится только то, что нужно мне
ob_start
X;
fwrite($file, "something");
...
ob_end_clean;
......
include($file)
Таким образом выводится только то, что нужно мне

1) "include($file)" - замечательный стиль, не боишься, что в этом something у тебя окажется пользовательский ввод?
2)
?
2)
ob_startЧем это лучше
X;
fwrite($file, "something");
...
ob_end_clean;
ob_start;
X;
ob_end_clean;
echo "something";
?
Тем, что последнее не работает
В something находится XSL табличка с распарсенным хмл и всё
не боишься, что в этом something у тебя окажется пользовательский ввод
В something находится XSL табличка с распарсенным хмл и всё
Объясни-ка мне, тёмному, почему в
от функции X ничего не выводится, а в
выводится.
ob_start
X;
fwrite($file, "something");
...
ob_end_clean;
от функции X ничего не выводится, а в
ob_start
X;
ob_end_clean;
выводится.
Оставить комментарий
amarcord74
Пусть есть некая библиотченая функция X, которая любит все побочные результаты своей работы выводить в браузер.Если я вызову
X;
echo "Yo!";
на экран выдастся:
<результат работы X>Yo!
ob_start;
X;
ob_clean;
echo...
ob_flush;
делу не помогают. Как загасить вывод библиотечной функции?