2012-02-03 92 views
2

我怎麼能以這種形式取代一些標記:PHP的preg_replace方括號

[a href="/my_page" style="font-size: 13px"]click me[/a] 

<a href="/my_page" style="font-size: 13px">click me</a> 

使用的preg_replace()?

我還需要考慮更多屬性。

+0

只是出於好奇:有什麼意義? – 2012-02-03 03:59:43

+0

我試圖做一個幫助主題部分,用戶可以將主題內容輸入到文本框中,還可以將他們想要的任何HTML保存到數據庫中。但是在將主題內容輸出到頁面上時,我需要對主題內容運行htmlspecialchars(),但不希望替換任何HTML標記。有任何想法嗎? – 2012-02-03 04:06:54

回答

2
$s = '[a href="/my_page" style="font-size: 13px"]click me[/a]'; 
$ret = preg_replace('~\[([^\[\]]+)\]([^\[\]]++)\[/([^\[\]]++)\]~', '<\1>\2</\3>', $s);