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 に答える