我正在建立一个网站和一个PHPBB3论坛。我希望论坛上发布的消息显示在网站的主页上。我已经得到了这个概念,除了bbcode解析很奇怪(phpbb3在每个bbcode标签后添加一个UID),而我的bbcode解析器不包括这个。由于每个帖子的UID不同,我试图通过MYSQL解析PHP代码并将其删除。
$query = @mysql_query("SELECT * FROM phpbb_posts where forum_id = 2;") or die (mysql_error());
$uid = $row['bbcode_uid'];
$content = $row['post_text'];
$content = str_replace($uid, '', $content);
$content = BBCode2html($content);
echo $content;
有没有办法可以替换UID(bbcode看起来像[u:1h77z1wc]UNDERLINED[/u:1h77z1wc]
而不是[u]UNDERLINED[/u]
)?
答案 0 :(得分:3)
你可以用正则表达式替换它......
preg_replace('/\[((\w+)(:\w+))](.*?)\[\/\1]/s', '[$2]$4[/$2]', $str);
答案 1 :(得分:0)
以下正则表达式应该可以解决这个问题:
preg_replace( '/\[(\/?[^:]+):[^\]]+\]/', '[$1]', $str );