0

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

0 回答 0