Согласно 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. Допускается так:
$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 </ v: roundrect>
контент mytag
</ form & gt" rel = "nofollow noreferrer"> http://sdsd.com">;
Результат:
11111111 </ form & gt" rel = "nofollow noreferrer"> http://sdsd.com">;
Теги
и были проигнорированы. Метка была продезинфицирована больше, чем ожидалось.