如何在CLI和Web浏览器中编写新行?

时间:2012-03-12 10:13:59

标签: php

我正在从CLI命令和Web浏览器运行php脚本。我需要在两种方式中正确显示新行,以便它不会在CLI中打印"<br />"并在浏览器中显示新行。有谁知道如何为此编写php函数?

感谢任何帮助

5 个答案:

答案 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}";