我正在从CLI命令和Web浏览器运行一个php脚本。我需要在两种方式中正确显示新行,以便在CLI中不打印"<br />"
,并且它在浏览器中显示新行。有谁知道如何编写这个PHP函数?如何在CLI和Web浏览器中编写新行?
感谢您的帮助
我正在从CLI命令和Web浏览器运行一个php脚本。我需要在两种方式中正确显示新行,以便在CLI中不打印"<br />"
,并且它在浏览器中显示新行。有谁知道如何编写这个PHP函数?如何在CLI和Web浏览器中编写新行?
感谢您的帮助
你可以写一个函数返回基于执行环境正确的事情:
<?php
if (PHP_SAPI === 'cli')
{
return PHP_EOL;
}
else
{
return "<BR/>";
}
?>
可以将输出的内容类型设置为text/plain
,使浏览器显示的内容,那么,像你将在CLI之前看到
header("Content-type: text/plain");
认沽纯文本你输出任何东西。
之后,总是创建使用\n
代码中使用\n
新线
。之后,基于Web的版本应用nl2br。
你可以抓住一个变量的内容,并根据平台(页/ CLI)变化
成\ n
要做到这一点,你可以somethink这样写:
<?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()' – fajran 2012-03-12 10:25:29
@Sirko已经回答了前面的问题:) – 2012-03-12 10:31:07
短:'函数BR(){回报:(PHP_SAPI === 'CLI' “\ n” “
”?) }' – switz 2012-03-12 10:20:49
我很想用'PHP_EOL'常量代替'“\ n”'来确保你得到了正确的平台结束行。 – 2012-03-12 10:22:50
@NevStokes,好点。 – 2012-03-12 10:24:38