2011-03-14 135 views
0

爲什麼PHP程序不recongize成\ n本聲明的字符串中轉義字符:PHP n轉義字符

回聲 「測試\ n testing2」;

爲什麼?

+0

HTML想要的一切 - > BR標籤||文本文件 - >換行符......... – dqhendricks 2011-03-14 22:58:35

+0

這是一個有效的問題人... – fotanus 2013-05-27 15:02:36

回答

3

行尾字符在HTML中沒有任何意義,它應該是PHP輸出。

在HTML中的下一行是<br/>標籤,所以你應該輸出:

echo "<br/>"; 

您還可以通過nl2br功能改變的\n中所有出現的字符串<br/>由我的朋友說。

2

它確實,請看源代碼。如果你想看到它在瀏覽器中,使用

echo nl2br(" testing \n testing2"); 

瀏覽器會忽略無視多餘的空格(包括換行符)並將其轉換爲一個空間。您需要HTML標記(例如<br />)來手動分解線條。

+0

Parens不是強制性的回聲。 – 2011-03-14 22:52:30

+1

但是對於'nl2br()'函數調用! – ThiefMaster 2011-03-14 22:53:03

+0

hehehe我的不好:) – 2011-03-14 22:53:52

5

我要去上肢體這裏,你猜你寫這樣的頁面:

<?php 

echo " testing \n testing2"; 

?> 

而且該HTML輸出如下:

testing testing2 

這是因爲HTML凝結白色空間。你需要使用一些HTML元素,使輸出的方式,你認爲它應該:

echo " testing <br /> testing2"; 
1

如果你去「查看源文件」在瀏覽器中,然後你會看到它有插入一個換行符。但是,在HTML中,換行符被解釋爲空格,並且不會開始新行。正如@Czechnology所說,你想用nl2br來用HTML換行符替代換行符(<br>)。

當你問一個問題時,請記得接受最好的答案。

3

當在HTML上下文中使用時,\n換行符將不可見,但HTML源代碼中不可見,因爲HTML使用<br />換行符。要轉換它們,請使用nl2br()

你還需要小心你的字符串是如何引用的。像\n這樣的轉義序列僅在雙引號"strings"中解析。在單引號'strings'他們不解析。

1

因爲您的導航器認爲您要顯示html 而您想要顯示純文本。只需添加一個 頭解釋要顯示的內容類型:

header('Content-Type: text/plain'); 
echo " testing \n testing2"; 
+0

這給出了換行輸出,但同時它顯示html代碼 – 2013-11-22 10:27:41

-1
$teststring = ; 
echo nl2br($teststring); 

,並輸入您在$teststring