Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何扩展Parsedown以向表标记添加类_Php_Html Parsing_Php Extension_Parsedown - Fatal编程技术网

Php 如何扩展Parsedown以向表标记添加类

Php 如何扩展Parsedown以向表标记添加类,php,html-parsing,php-extension,parsedown,Php,Html Parsing,Php Extension,Parsedown,我想为编写一个扩展,以便可以向每个表标记添加一个默认类。我发现我可以通过在blockTable函数(大约第870行)中添加行来分配属性,从而成功地破解源代码: 但是,如果我尝试不严格地遵循这些规则,我将失败(可能是因为表解析可能是一个迭代过程,并且教程中的示例是一个简单的字符串替换) 我试过: class Extension extends Parsedown { protected function blockTable($Line, array $Block = null)

我想为编写一个扩展,以便可以向每个表标记添加一个默认类。我发现我可以通过在
blockTable
函数(大约第870行)中添加行来分配属性,从而成功地破解源代码:

但是,如果我尝试不严格地遵循这些规则,我将失败(可能是因为表解析可能是一个迭代过程,并且教程中的示例是一个简单的字符串替换)

我试过:

class Extension extends Parsedown
{

        protected function blockTable($Line, array $Block = null)
        {
                $Block = parent::blockTable($Line, array $Block = null);

                $Block['table']['attributes']['class'] = 'table';

                return $Block;
        }

}   

但这不起作用。

我不太确定你的代码有什么问题,因为你的代码和我的匹配。我只是加了一句

'attributes' => array(
      'class' => 'table table-responsive'
),
要识别表格,请在第850行,以便

        $Block = array(
            'alignments' => $alignments,
            'identified' => true,
            'element' => array(
                'name' => 'table',
                'handler' => 'elements',
                'attributes' => array(
                    'class' => 'table table-responsive',
                ),
            ),
        );
这对我来说很好。但这对你来说似乎是一样的,减去表响应


您使用的是什么版本?

我在symfony演示应用程序中遇到了完全相同的问题。 最后发现它没有被解析,因为输出被html消毒剂清除了。 允许表的class属性解决了这个问题

对于symfony 4演示应用程序,添加到
config/packages/html\u sanitizer.yaml

html_sanitizer:
  #[...]
  sanitizers:
    default:
      # [...]
      tags:
        table:
          allowed_attributes:
           - "class"

如果你想从OP获得更多信息,请使用评论。我会的,但现在还不能评论。我试图帮助你,但我可以,但不被允许的网站。这是完全可以理解的。关于元堆栈溢出,已经讨论了很多次。一旦你有足够的钱,你将能够;相反,复制!谢谢你刚才复习了你的一个问题。现在你有足够的代表到处发表评论。祝你好运:)
html_sanitizer:
  #[...]
  sanitizers:
    default:
      # [...]
      tags:
        table:
          allowed_attributes:
           - "class"