Я запускаю 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.