2009-12-09 122 views
0

需要一個簡單的preg_replace將所有<br><br/>和所有可能的br組合轉換爲<br />將所有br標籤轉換爲一個通用<br />

這需要爲了工作,所以我可以處理字符串即: $output = preg_replace('', '<br />', $input)

謝謝大家!

+0

BTW你知道
是不合法的HTML嗎?法律HTML是

是XHTML。 – cletus 2009-12-09 12:55:28

+6

cletus,'
'在HTML 4中很好,它將通過驗證,並且不會在瀏覽器中導致任何問題。 – 2009-12-09 13:01:48

回答

3

一個正則表達式來解決所有問題:

$output = preg_replace('/<\s*br[^>]*>/i', '<br />', $input); 
0

/<?[bB] [rR]?/? ?>/

+0

這涵蓋了至少95%的所有組合,所以我不會不情願地使用downvote。 – dwo 2009-12-09 13:23:27

+0

+1即使它。 – 2010-02-03 22:56:44

-2
$output = preg_replace('/< ?[bB][rR] ?\/? ?>/', '<br />', $input); 
+0

break'
'......再加上你剛剛從dwo複製了這個...... – nickf 2009-12-09 12:51:07

+0

*嘆息* ...評論的東西剔除了原本應該存在的額外空間。這是另一個它不會工作的:'
' – nickf 2009-12-09 12:52:01

6

[強制性HTML解析器評論]

如果您與未知的和非一致的HTML工作(因爲它聽起來像你),然後放下正則表達式,你可能會傷害你自己。查找標籤列表並更改文檔是HTML分析器的基礎。

瞭解PHP DOM Methods併爲自己節省很多心痛。

+2

強制性+1遵循強制性HTML解析器建議 – 2009-12-09 12:51:40

-1

嘗試這種模式

<\s*[bB][rR]\s*\/?\s*>