定义要在PECL BBCode中使用父元素的元素

时间:2015-07-19 17:00:22

标签: php dom bbcode pecl

我已经定义了以下规则,允许用户通过bbcode创建表格:

        'table' => array(
            'type' => BBCODE_TYPE_NOARG,
            'open_tag' => '<table>',
            'close_tag' => '</table>',
            'childs' => 'tr',
        'tr' => array(
            'type' => BBCODE_TYPE_NOARG,
            'open_tag' => '<tr>',
            'close_tag' => '</tr>',
            'childs' => 'th,td',
            'parent' => 'table'),
        'th' => array(
            'type' => BBCODE_TYPE_NOARG,
            'open_tag' => '<th>',
            'close_tag' => '</th>',
            'parent' => 'tr'),
        'td' => array(
            'type' => BBCODE_TYPE_NOARG,
            'open_tag' => '<td>',
            'close_tag' => '</td>',
            'parent' => 'tr'),

您的想法是,您可以定义表格,表格行或表格单元格,但是:

  • TABLE只能TR作为其子女
  • TR只能有TABLE作为其父级,并且只能THTD作为其子级
  • THTD只能有TR作为其父

此父/子指令在非常中简要记录在此处: http://php.net/manual/en/function.bbcode-create.php

然而,基本实验表明“父”指令似乎没有做任何事情。也就是说,通过上述规则,它将很乐意在顶层解析TR元素。这似乎是一个非常奇怪的设计决定,所以我想知道我做错了什么?此外,由于实施该论坛的论坛是在表格中列出的,当有人这样做时,它会相当惊人地打破论坛展示。

0 个答案:

没有答案