Печать к терминалу, в то время как выходная буферизация использования в Сценариях PHP CLI

Если необходимо удалить файлы из решительного расширения (например, скомпилированные файлы), Вы могли сделать следующее для удаления их внезапно:

git remove -f *.pyc
6
задан Amal G Jose 21 August 2015 в 09:02
поделиться

3 ответа

Просто напишите в STDOUT или STDERR (обе константы, содержащие ресурсы указателя файлов), используя fputs ():

ob_start();
echo 'Output buffer';
fputs(STDOUT, "Log message");
$x = ob_get_contents();
ob_end_clean();;

echo "X = $x";
8
ответ дан 8 December 2019 в 14:45
поделиться

Использовать поток php: // stderr :

$f = fopen('php://stderr', 'w');
fputs($f, 'Output');

РЕДАКТИРОВАТЬ: Кроме того, в CLI есть предопределенная константа STDERR :

fputs(STDERR, 'Output');
6
ответ дан 8 December 2019 в 14:45
поделиться

Можно «приостановить» выходной буфер. Запишите содержимое буфера в переменную и закройте буфер без сброса. Напишите небуферизованный вывод и снова вызовите ob_start (). Этот метод использует конкатенацию строк и ' относительно грязный метод. По этой причине я предпочитаю другие методы, а не мой собственный.

Но в любом случае вот небольшой рабочий пример:

<?php
ob_start();
    echo 'Buffered line 1.<br>';
$ob = ob_get_contents();
ob_end_clean();

echo 'Non-buffered line.<br>';

ob_start();
    echo 'Buffered line 2.<br>';
$ob .= ob_get_contents();
ob_end_clean();

echo 'Non-buffered line.<br>';

ob_start();
    echo 'Buffered line 3.<br>';
$ob .= ob_get_contents();
ob_end_clean();

echo 'Non-buffered line.<br>';

echo $ob;
?>
2
ответ дан 8 December 2019 в 14:45
поделиться
Другие вопросы по тегам:

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