2015-09-24 26 views
1

解決方案的信息:字符串替換<br />到 n給出雙突破

的nl2br功能不<br />\n前更換\n如我所預料的,但插入一個<br />

從php.net:

nl2br - 在字符串所有新行之前插入HTML換行符


原題:

我更換<br />在PHP中使用\n的元素,這是我的輸入:

Top spot!<br /> 
<br /> 
123456789 123456789 123456789 

這是我的代碼:

$commenttext = str_replace("<br />", "\n", $reviewdata['comment']); 

但我的輸出是:

Top spot! 



123456789 123456789 123456789 

有什麼我失蹤使用str_replace函數?使用後返回的間隔增加了一倍。

+1

似乎沒什麼問題。如果您的輸入實際上與您發佈的內容類似,那麼
標籤後面會有alreay linebreak(\ n)! – dbarthel

回答

2

讓我給你看。更換之前,您的代碼:

Top spot!<br />\n<br />\n123456789 123456789 123456789 

你的代碼替換後:

Top spot!\n\n\n\n123456789 123456789 123456789 

正如你可以看到<br />正確使用新的生產線所取代。

嘗試新線第一,以取代<br />標籤:

$commenttext = str_replace("<br />\n", "\n", $reviewdata['comment']); 
+0

你是對的。我通過使用您發佈的最後一段代碼來修復它。這很奇怪,我首先對輸入進行清理,然後在將它保存到數據庫之前通過'nl2br();'。它似乎將'\ n'更改爲'
\ n' – s1h4d0w

1
<?php 

$text = 'top spot!<br /> 
<br /> 
123456789 123456789 123456789'; 

echo str_replace("<br />\n","\n",$text); 

?> 

DEMO

輸出

top spot! 123456789 123456789 123456789 
+1

Daniil只是更快一點,但感謝您的回答! – s1h4d0w

+0

@ s1h4d0w不客氣! –