2013-06-05 107 views
1

我有以下代碼:ECHO變量包括換行符

<p><?php echo $item['desc']; ?></p> 

代碼拉動從數據庫中執行以下操作:

Point 1 
Point 2 
Point 3 

並將其顯示爲:點1點2點3,

我需要做些什麼來獲得新的行,我試過把/ n或
標籤添加到數據庫引用,但它沒有任何區別。

+0

什麼是$項目??陣..? – Gautam3164

+0

是否要在每個點x(item ['desc'])之後添加換行符? – Bere

+0

它應該是\ n,而不是/ n - 只是一個修正,不是因爲你應該使用在答案中指出的另一種方法真的很重要。 – luk2302

回答

0

試試這個

echo str_replace(' ',"\n", $item['desc']); 
0

\ n將無法工作,因爲你打印字符串必須通過在HTML瀏覽器進行處理。 改爲使用<br>標記。

3

也許換行符正在打印,但你需要它們是<br>標籤,所以它們會在網頁上顯示爲換行符?您可以使用該功能nl2br()爲:

<p><?php echo nl2br($item['desc']); ?></p> 
5

這應該工作

<p><?php echo nl2br($item['desc']); ?></p> 

否則: -

echo nl2br(str_replace(' ',"\n", $item['desc'])); 
+0

完美謝謝! –

+0

哪一個適合你? – vascowhite

+0

@vascowhite'nl2br'應該做的伎倆+1你 –

3

換行符是包括在內。它只是不顯示在瀏覽器中,因爲HTML標準是這樣說的。如果您希望它顯示在瀏覽器中,請將換行符更改爲<br>標籤,例如使用nl2br()

0

嘗試像

echo str_replace(' ',"<br>", $item['desc']); 
0

我不明白你想要什麼,但可能是這樣的:

$string = "Point 1 Point 2 Point 3"; 

$string = preg_replace("/(point \d+)/i", "\$1\r\n", $string); 

echo $string 

輸出:

Point 1 
Point 2 
Point 3 

注意:僅限使用nl2br(請參閱其他答案)如果新行已經在字符串中,但沒有顯示。

+0

無需正則表達式在這裏,它是相當昂貴的。 'nl2br()'就是這種場景的首選工具。 – vascowhite

+0

如果新行已經在字符串中,那麼是的。但是在閱讀OP的問題時我不確定這一點。 – enenen

+0

不,我也不確定,我想他們是我的第一個選擇。 – vascowhite

0

如果你像測試測試測試一行代碼,你可以使用preg_replace功能:

echo preg_replace("{[ ]+}","<br/>",$items['desc']); 

如果你的字符串這樣的測試1測試2 ...和你的目標是: TEST 1 TEST 2 ...等等.. 您可以使用此模式:

$t = preg_match_all("{[\w]+[ ]?[0-9]+}",$items['desc'],$m); 
foreach ($m[0] as $val) { echo $val."<br/>"; }