2012-02-03 126 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);