2012-09-13 16 views
8

由於一些奇怪的原因,插入echo "\n";和其他scape序列字符不適用於我,這就是爲什麼我只使用<br />來代替。PHP中的新行(「 n」)無法正常工作

書籍和其他文件中的例子結果的圖像似乎只是沒問題。我目前正在使用XAMPP,並且已經使用WAMPP獲得了相同的實際結果。這是爲什麼?

編輯:

看來,我無法理解這種比較你的答案後的概念: PHP Linefeeds (\n) Not Working

編輯:

對不起,我沒有意識到,上面的鏈接是指的是寫入文件的php代碼。我只是想知道爲什麼我有這些使用\ n的PHP示例程序,即使它在網頁中輸出。感謝大家。

+10

因爲你輸出HTML,和HTML,「\ n」被視爲空白? – andrewsi

+0

我想強調,我使用雙引號,它們嵌入在PHP代碼中。此外,我使用的文件擴展名是.php。 – Arman

+1

在HTML中,一個換行符只能在'white-space:pre'或類似的(pre元素的默認樣式/行爲)的上下文中處理。在其他HTML上下文中,換行符被視爲空白。 – ACJ

回答

19

一個瀏覽器中的PHP腳本,它將默認呈現爲HTML格式。如果您使用’重新使用的書籍顯示,則代碼或插圖不準確。您可以使用「查看源」查看發送給瀏覽器的內容,並且您將看到您的換行符存在。

Line 1 Line 2 

如果您需要發送純文本瀏覽器,你可以使用類似:

<?php 
header('Content-type: text/plain'); 
echo "Line 1\nLine 2"; 
?> 

這將輸出

<?php 
echo "Line 1\nLine 2"; 
?> 

這將在您的瀏覽器渲染:

Line 1 
Line 2 

PHP Linefeeds (\n) Not Working指的是發送輸出到文件而不是瀏覽器。

+0

文件而不是瀏覽器輸出。而已! – Arman

+0

我把你的問題解決了嗎? – Herbert

+0

是的,我想,它只是對這個職位的一個誤解。謝謝。 – Arman

2

<br />是新行的HTML標籤,而 「\ n」是輸出新行(對於真實行)。

每次HTML文件進入下一行時,瀏覽器都不輸出新行。

3

您應該尋找nl2br()。這會在您的輸出中添加換行符(<br>),該輸出將由瀏覽器呈現;換行符不是。

1

可以使用nl2br功能轉換\n<br>

正如之前所說,HTML不會呈現\n新線。它只承認<br> html標籤

2

echo "\n"可能工作,只是不符合你的期望。

該命令將插入一個新的行字符。從它的聲音中,您使用瀏覽器來查看您的輸出。請注意,如果你寫一個HTML文件,該文件有一個正文內容看起來像:

<p>This 
is 
a 
test </p> 

瀏覽器渲染將不包括新的生產線,而會只顯示「這是一個測試」

如果你想看到換行符,你可以查看源代碼,並且你會看到源代碼包含新行。

經驗法則是,如果您需要在瀏覽器中新行,你需要使用HTML(例如,<br />),而如果你想讓它以純文本格式,你可以當您運行使用\n

0

如果您在使用HTML(查看結果在瀏覽器爲例),你必須使用換行的HTML方式是:<br>