Я запускаю php-скрипт из команды CLI и веб-браузера. Мне нужно правильно настроить новые строки в обоих направлениях, чтобы он не печатал "<br />"
в CLI, и он показывает новые строки в браузерах. Кто-нибудь знает, как написать php-функцию для этого?
спасибо за помощь
Вы можете написать функцию, чтобы вернуть правильную вещь на основе среды выполнения:
<?php if (PHP_SAPI === 'cli') { return PHP_EOL; } else { return "<BR/>"; } ?>
Вы можете установить тип содержимого вывода в text/plain
чтобы браузеры отображали контент, как, ну, обычный текст, как то, что вы увидите в CLI
header("Content-type: text/plain");
Положите это, прежде чем вы вывести что-нибудь.
После этого всегда используйте \n
для новых строк
Вы можете захватить контент в переменной и в соответствии с изменением платформы (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; ?>
Создайте свой код с помощью \n
. Для веб-версии примените nl2br впоследствии.