【发布时间】:2026-01-31 22:30:01
【问题描述】:
我正在从 CLI 命令和 Web 浏览器运行 php 脚本。我需要以两种方式正确显示新行,以便它不会在 CLI 中打印 "<br />" 并在浏览器中显示新行。有谁知道如何为此编写php函数?
感谢您的帮助
【问题讨论】:
标签: php
我正在从 CLI 命令和 Web 浏览器运行 php 脚本。我需要以两种方式正确显示新行,以便它不会在 CLI 中打印 "<br />" 并在浏览器中显示新行。有谁知道如何为此编写php函数?
感谢您的帮助
【问题讨论】:
标签: php
你可以编写一个函数来根据执行环境返回正确的东西:
<?php
if (PHP_SAPI === 'cli')
{
return PHP_EOL;
}
else
{
return "<BR/>";
}
?>
【讨论】:
function br() { return (PHP_SAPI === 'cli' ? "\n" : "<br />"); }
PHP_EOL 常量而不是"\n" 来确保您获得平台的正确行尾。
$br = PHP_SAPI === 'cli' ? "\n" : "<br/>";,然后在需要编写新行时使用该$br。
您可以将输出的内容类型设置为text/plain,以使浏览器将内容显示为纯文本,就像您将在 CLI 上看到的一样
header("Content-type: text/plain");
把它放在你输出任何东西之前。
之后,始终使用\n 换行
【讨论】:
您可以抓取变量中的内容并根据平台(页面/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()
简单
$newline = PHP_SAPI === 'cli' ? "\n" : "<br>";
然后用 {$newline} 替换代码上的所有 \n
例如:
echo "Try to Load Json From 1C for all Data{$newline}";
【讨论】:
使用\n 创建您的代码。对于基于网络的版本,请在之后申请nl2br。
【讨论】: