0

我有这种从数据库中检索到的记录,我想在其中解码格式值并将其替换为适当的 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
4

2 回答 2

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);
于 2013-01-08T03:41:39.337 回答
1

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

你也可以使用这个类

阅读有关解析文本的更多信息。

于 2013-01-08T03:48:22.930 回答