搜索不同的标签并替换单个preg_replace函数

时间:2013-01-08 03:39:08

标签: php regex preg-replace bbcode phpbb3

我从数据库中获取这种检索记录,我想解码格式化值并将其替换为适当的html标记,以便在显示时正常工作:

[size=150:3a9xfsiy][color=#000080:3a9xfsiy]hello world[/color:3a9xfsiy][/size:3a9xfsiy]

此记录是由phpBB创建的,我用它在phpBB控件之外的网站的其他部分显示..

我尝试过的是使用PREG_REPLACE,但问题是,有没有办法在正则表达式中读取不同的格式化标签?例如:

[size=150:3a9xfsiy] and [/size:3a9xfsiy] must be searched in a single preg_replace

2 个答案:

答案 0 :(得分:1)

<?
    $ret = 'I gave my Word to you Word.';
    $pattern = '/\bWord\b/i';
    $ret = preg_replace($pattern,"Heart",$ret);
    var_dump($ret);
?>

string(29)“我把心脏送给你了。”

或者这是否适合你

你可以使用str_replace:

$str = str_replace(array('<tag>', '</tag>'), array('<newtag>', '</newtag>', $str);

答案 1 :(得分:1)

Phpbb为此提供了一个功能。 Generate_text_for_display。从db中检索它时,请包含phpbb函数并应用此函数。

您也可以使用this class

详细了解parsing text