2012-03-12 78 views
4

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

感谢您的帮助

回答

5

你可以写一个函数返回基于执行环境正确的事情:

<?php 
if (PHP_SAPI === 'cli') 
{ 
    return PHP_EOL; 
} 
else 
{ 
    return "<BR/>"; 
} 
?> 
+1

短:'函数BR(){回报:(PHP_SAPI === 'CLI' “\ n” “
”?) }' – switz 2012-03-12 10:20:49

+1

我很想用'PHP_EOL'常量代替'“\ n”'来确保你得到了正确的平台结束行。 – 2012-03-12 10:22:50

+0

@NevStokes,好点。 – 2012-03-12 10:24:38

6

可以将输出的内容类型设置为text/plain,使浏览器显示的内容,那么,像你将在CLI之前看到

header("Content-type: text/plain"); 

认沽纯文本你输出任何东西。

之后,总是创建使用\n代码中使用\n新线

0

。之后,基于Web的版本应用nl2br

1

你可以抓住一个变量的内容,并根据平台(页/ 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; 

?> 
+0

或者相反:使用'\ n'并在需要时调用'nl2br()' – fajran 2012-03-12 10:25:29

+0

@Sirko已经回答了前面的问题:) – 2012-03-12 10:31:07