2012-03-12 56 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