解析引用标记后,为什么blockquote不会出现在我的源代码中?

时间:2013-07-16 20:20:25

标签: php bbcode quote

我正在使用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;
}

0 个答案:

没有答案