2012-10-26 60 views
0

我有一個textarea,用戶可以使用BBCode和HTML代碼,以便在數據庫中插入新聞。當我想在網站上顯示這個消息時,PHP腳本將BBCode轉換爲HTML實體,並將HTML標準中的新聞內容(從數據庫獲取)轉換爲HTML標記。問題是,當我想換行轉換爲<br />標籤與nl2br()功能,因爲<br />是HTML標籤後添加過多,例如:nl2br()在textarea與BBCode和HTML代碼

<li>Some text</li><br /> 

<table><br /> 
<tr><br /> 
etc. 

是否有避免這個煩人的問題的方法?

+1

您是否想過強制用戶將HTML放入'[html] [/ html]'? – pebbo

回答

1

我在想一個正則表達式。這應該只適用於文本不分開<p></p>(在我看來會更好一點)。

$formattedText = preg_replace("/(<[a-zA-Z0-9=\"\/\ ]+>)<br\ \/>/", "$1", nl2br($text)); 

如前所述,另一種選擇是尋找特定標籤內的文本,以及環繞<p>標籤。

+0

哦,這太棒了,它的工作原理:)我添加了其他字符,可以出現在HTML標籤,如「#」,「:」等。非常感謝! – Andres7X