我正在使用 CodeIgniter 开发一个自定义论坛。我需要创建一个解析 [quote] 标签的函数。我希望我的函数传递引用帖子的 id 以及原始消息。出于某种原因,blockquote 标签没有出现在我的源代码中,但是,原始消息是。有人能告诉我为什么吗?
<?php
function parse_bb($str){
$str = nl2br($str);
$find = array(
"'\[b\](.*?)\[/b\]'is",
"'\[i\](.*?)\[/i\]'is",
"'\[u\](.*?)\[/u\]'is",
"'\[s\](.*?)\[/s\]'is",
"'\[img\](.*?)\[\/img\]'is",
"'\[url\](.*?)\[/url\]'i",
"'\[url=(.*?)\](.*?)\[/url\]'i",
"'\[link\](.*?)\[/link\]'i",
"'\[link=(.*?)\](.*?)\[/link\]'i",
"'\[h1\](.*?)\[\/h1\]'is",
"'\[h2\](.*?)\[\/h2\]'is",
"'\[h3\](.*?)\[\/h3\]'is",
"'\[ul\](.*?)\[\/ul\]'is",
"'\[li\](.*?)\[\/li\]'is",
"'\[p\](.*?)\[\/p\]'is",
"'\[quote id=(.*?)\](.*?)\[\/quote\]'is"
);
$replace = array(
'<strong>\1</strong>',
'<em>\1</em>',
'<u>\1</u>',
'<s>\1</s>',
'<img src="\1" \1alt="User Image" />',
'<a href="\1">\1</a>',
'<a href="\1">\2</a>',
'<a href="\1">\1</a>',
'<a href="\1">\2</a>',
'<h1>\1</h1>',
'<h2>\1</h2>',
'<h3>\1</h3>',
'<ul>\1</ul>',
'<li>\1</li>',
'<p>\1</p>',
_parse_quote($post_id = "\1", $original_message = "\2")
);
$str = preg_replace($find, $replace, $str);
return $str;
}
function _parse_quote($post_id, $original_message){
$str = $post_id;
$CI =& get_instance();
$CI->load->model('forums/message');
$CI->message->get_info($post_id);
if($CI->message->error == NULL){
$message = $CI->message->info;
$str = 'Message Id '.$post_id.'
<blockquote>
<p>'.$original_message.'</p>
</blockquote>
';
} else {
$str .= $CI->message->error;
}
return $str;
}