2012-11-30 95 views
3

我在用戶提交的表單上有一個textarea字段,它會被保存到MySQL數據庫中。當我檢索值時,我運行nl2br將換行符轉換爲br標籤。然後我用str_replace用p標籤替換雙br。這個問題沒有被替代。我一遍又一遍地看了一遍,只是無法弄清楚什麼是錯的。str_replace for br tags not working

下面是HTML輸出:

Windows XP Home/Professional 
<br />(32 and 64 bit) 
<br /> 
<br />Test Operating System 2 
<br />(32 and 64 bit) 
<br /> 
<br />Test Operating System 3 
<br />(64 bit) 

這裏是我的PHP:

$FORMATTED = str_replace("<br /><br />", "</p><p>", $SUPPORTED_PLATFORMS); 

$ FORMATTED的輸出看上去完全一樣,上面的HTML輸出。我基本上想用p標籤替換所有背對背的br標籤,並將所有單標籤都按照它們的方式放置。

謝謝!

+3

你有'
\ r \ n
'還是在 「HTML」 類似的輸出。不要相信你在瀏覽器呈現的視圖中看到的內容。它會騙你。總是首先檢查'view source',並且/或者捕獲文本並通過十六進制編輯器運行它,以查看字符串中的內容。 –

+0

你應該使用正則表達式替換連續的'br'標籤。 'preg_replace('/ \ s * ','

',$ SUPPORTED_PLATFORMS);''s'替換任何空格字符 – jaudette

+0

Thanks @MarcB。我發佈的HTML來自查看源,這是我感到困惑的地方。那麼,就像在我的str_replace中的br之間添加\ r \ n一樣簡單?我現在可以嘗試.... – Jason

回答

1

問題是,您試圖替換<br /><br />字符串,但該字符串不在您的源代碼中。有<br />\n<br /><br />\r\n<br />

+0

謝謝Jakub!這樣做的訣竅 - 將替換更改爲'
\ r
',它的工作完美! – Jason