codeigniter解析并替换bbcode

时间:2013-02-18 17:02:44

标签: codeigniter bbcode

我使用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。 替换不起作用(没有任何反应)。我做错了什么?

1 个答案:

答案 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/是解决正则表达式问题的好资源。