我无法将自定义标签添加到 HTML Purifier

I cannot add custom tag to HTML Purifier

根据 http://htmlpurifier.org/docs/enduser-customize.html,我尝试将自定义标签添加到 htmlpurifier。但它仅适用于

等已知标签
    require_once __DIR__ . '/htmlpurifier-4.10.0/library/HTMLPurifier.auto.php';

    $config = HTMLPurifier_Config::createDefault();

    $config->set('HTML.DefinitionRev', 1);
    $config->set('Cache.DefinitionImpl', null);
    $def = $config->getHTMLDefinition(true);

    $form = $def->addElement(
        'form',
        'Block',
        'Flow',
        'Common',
        array(
            'action*' => 'URI',
            'method' => 'Enum#get|post',
            'name' => 'ID'
        )
    );
    $form->excludes = array('form' => true);

    $vroundrect = $def->addElement(
        'v:roundrect',
        'Block|Inline',
        'Optional: Flow|Inline',
        'Common',
        array(
            'xmlns:v' => 'CDATA',
            'xmlns:w' => 'CDATA'
        )
    );
    $vroundrect->excludes = array('v:roundrect' => true);

    $mytag = $def->addElement(
        'mytag',
        'Block|Inline',
        'Optional: Flow|Inline',
        'Common',
        array(
        )
    );
    $mytag->excludes = array('mytag' => true);

    $purifier = new HTMLPurifier($config);
    print $purifier->purify(file_get_contents(__DIR__ . '/tmpHTML2.txt'));

我试过 HTML.Allowed 这样的:

$validTags = '*[id|class|name],br,a[href|title|rel|target],' .
        'img[src|alt|height|width],div,' .
        'u,em,ul,ol,li,strong,span,mytag,v:roundrect,form[action|method]';
$config->set('HTML.Allowed', $validTags);

这不起作用。无论我不想替换可用标签列表,我想将新标签添加到可用标签列表中。

tmpHTML2.txt: 11111111
mytag 内容
http://sdsd.com"></form&gt;

结果: 11111111<表单动作="http://sdsd.com"></form&gt;

标签 被忽略。标签 比预期的更干净。

我在另一台电脑上试过这段代码,它是有效的。我认为这是缓存的问题。看起来像指令 $config->set('Cache.DefinitionImpl', null);不禁用缓存。我将尝试从 library/HTMLPurifier/DefinitionCache/Serializer 中删除文件。不管什么问题都解决了。