重新启用phpBB颜色代码中的引号

重新启用phpBB颜色代码中的引号,php,regex,bbcode,phpbb3,Php,Regex,Bbcode,Phpbb3,在其中一次更新中,phpBB删除了[color=value]…[/color]BBCode在颜色值周围加引号的选项。我对phpBB的实现在很大程度上依赖于此功能的运行,因为行业软件的设计目的是在输出值周围加上引号 如何重新启用此格式 我已经尝试修改includes/message_parser.php中的正则表达式,以包含引号的可能性(如下所示)。这适用于大多数符号,但似乎代码中的其他地方有某种特定的东西禁止引号工作 下面是我在includes/message_parser.php中尝试的更改。

在其中一次更新中,phpBB删除了
[color=value]…[/color]
BBCode在颜色值周围加引号的选项。我对phpBB的实现在很大程度上依赖于此功能的运行,因为行业软件的设计目的是在输出值周围加上引号

如何重新启用此格式

我已经尝试修改includes/message_parser.php中的正则表达式,以包含引号的可能性(如下所示)。这适用于大多数符号,但似乎代码中的其他地方有某种特定的东西禁止引号工作

下面是我在includes/message_parser.php中尝试的更改。我改变了:

function bbcode_init()
    {
        static $rowset;

        // This array holds all bbcode data. BBCodes will be processed in this
        // order, so it is important to keep [code] in first position and
        // [quote] in second position.
        $this->bbcodes = array(
            'code'          => array('bbcode_id' => 8,  'regexp' => array('#\[code(?:=([a-z]+))?\](.+\[/code\])#ise' => "\$this->bbcode_code('\$1', '\$2')")),
            'quote'         => array('bbcode_id' => 0,  'regexp' => array('#\[quote(?:="(.*?)")?\](.+)\[/quote\]#ise' => "\$this->bbcode_quote('\$0')")),
            'attachment'    => array('bbcode_id' => 12, 'regexp' => array('#\[attachment=([0-9]+)\](.*?)\[/attachment\]#ise' => "\$this->bbcode_attachment('\$1', '\$2')")),
            'b'             => array('bbcode_id' => 1,  'regexp' => array('#\[b\](.*?)\[/b\]#ise' => "\$this->bbcode_strong('\$1')")),
            'i'             => array('bbcode_id' => 2,  'regexp' => array('#\[i\](.*?)\[/i\]#ise' => "\$this->bbcode_italic('\$1')")),
            'url'           => array('bbcode_id' => 3,  'regexp' => array('#\[url(=(.*))?\](.*)\[/url\]#iUe' => "\$this->validate_url('\$2', '\$3')")),
            'img'           => array('bbcode_id' => 4,  'regexp' => array('#\[img\](.*)\[/img\]#iUe' => "\$this->bbcode_img('\$1')")),
            'size'          => array('bbcode_id' => 5,  'regexp' => array('#\[size=([\-\+]?\d+)\](.*?)\[/size\]#ise' => "\$this->bbcode_size('\$1', '\$2')")),
            'color'         => array('bbcode_id' => 6,  'regexp' => array('!\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)\](.*?)\[/color\]!ise' => "\$this->bbcode_color('\$1', '\$2')")),
            'u'             => array('bbcode_id' => 7,  'regexp' => array('#\[u\](.*?)\[/u\]#ise' => "\$this->bbcode_underline('\$1')")),
            'list'          => array('bbcode_id' => 9,  'regexp' => array('#\[list(?:=(?:[a-z0-9]|disc|circle|square))?].*\[/list]#ise' => "\$this->bbcode_parse_list('\$0')")),
            'email'         => array('bbcode_id' => 10, 'regexp' => array('#\[email=?(.*?)?\](.*?)\[/email\]#ise' => "\$this->validate_email('\$1', '\$2')")),
            'flash'         => array('bbcode_id' => 11, 'regexp' => array('#\[flash=([0-9]+),([0-9]+)\](.*?)\[/flash\]#ie' => "\$this->bbcode_flash('\$1', '\$2', '\$3')"))
        );
...
要将以下内容用于“颜色”匹配:

'color' => array('bbcode_id' => 6,  'regexp' => array('!\[color="?(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)"?\](.*?)\[/color\]!ise' => "\$this->bbcode_color('\$1', '\$2')"))

我还可以尝试将此功能重新添加到phpBB吗?

我认为phpBB在处理之前会转义特殊的HTML字符,这意味着您的regexp应该是这样的:

'!\[color=(?:")?(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)(?:")?\](.*?)\[/color\]!ise'