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