我从数据库中获取这种检索记录,我想解码格式化值并将其替换为适当的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
答案 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。