我已经定义了以下规则,允许用户通过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
作为其父级,并且只能TH
或TD
作为其子级TH
或TD
只能有TR
作为其父此父/子指令在非常中简要记录在此处: http://php.net/manual/en/function.bbcode-create.php
然而,基本实验表明“父”指令似乎没有做任何事情。也就是说,通过上述规则,它将很乐意在顶层解析TR
元素。这似乎是一个非常奇怪的设计决定,所以我想知道我做错了什么?此外,由于实施该论坛的论坛是在表格中列出的,当有人这样做时,它会相当惊人地打破论坛展示。