Как писать новые строки в CLI и веб-браузере?

Я запускаю php script из команды CLI и веб-браузера. Мне нужно правильно раскрыть новые строки в обоих направлениях, чтобы он не печатал "<br />" в CLI, и он показывает новые строки в браузерах. Кто-нибудь знает, как написать php-функцию для этого?

спасибо за помощь

Ответ 1

Вы можете написать функцию, чтобы вернуть правильную вещь на основе среды выполнения:

<?php 
if (PHP_SAPI === 'cli') 
{ 
   return PHP_EOL;
} 
else
{
   return "<BR/>";
}
?> 

Ответ 2

Вы можете установить тип выходного контента на text/plain, чтобы браузеры отображали контент, как, ну, обычный текст, как то, что вы увидите в CLI

header("Content-type: text/plain");

Поместите это, прежде чем вы выведете что-нибудь.

После этого всегда используйте \n для новых строк

Ответ 3

Вы можете захватить содержимое в переменной и в соответствии с платформой (page/cli) изменить
на \n

Для этого вы можете написать примерно так:

<?php
    ob_start();

    $a = 1;
    $b = 2;
    $c = $a + $b;
    echo "Sum of $a and $b is <br /> $c";

    $content = ob_get_clean();
    $type= php_sapi_name();

    if ($type == 'cli' || $type == 'cgi-fcgi') {
        str_replace("<br />", "\n", $content);
    }

    echo $content;

?>

Ответ 4

Создайте свой код с помощью \n. Для веб-версии впоследствии примените nl2br.