0

我使用 BBCode 助手。帮助代码:

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

4

1 回答 1

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

于 2013-02-18T18:32:11.287 回答