我使用BBCode Helper。 帮助代码:
function parse_bbcode($str = ''){
$find = array(
"'\[v\](.*?)\[/v\]'is"
);
$replace = array(
'<video>\1</video>'
);
return preg_replace($find, $replace, $str);
}
控制器:
$this->load->helper('bbcode');
$data['news'] = $this->news_model->get_news($config['per_page'], $this->uri->segment(3, 1));
foreach ($data['news'] as $key=>$val)
{
parse_bbcode($data['news'][$key]['description']);
}
例如我想将[v] vid [/ v]替换为vid。 替换不起作用(没有任何反应)。我做错了什么?
答案 0 :(得分:0)
你的正则表达式错了。
这有效:
$video = "[v]testvid.swf[/v]";
$re = '/\[v](.+)\[\/v\]/i';
$replace = '<video>\1</video>';
echo htmlspecialchars(preg_replace($re, $replace, $video));
输出:
<video>testvid.swf</video>
http://regexpal.com/是解决正则表达式问题的好资源。