Как сделать несколько конфигураций HTMLpurifier?

Мне нужно 3 разных конфигурации для разных ситуаций. Иногда мне это нужно, чтобы отфильтровать все, а в других формах мне нужно что-то разрешить. Однако я заметил, что любые новые определены, внесите изменения для всех других конфигураций 🙁

//this isn't working right
$default_cfg = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($default_cfg);

$purifier_minimal_cfg = HTMLPurifier_Config::createDefault();
$purifier_minimal_cfg->set('HTML.Allowed', 'em,strong,p,br');
$purifier_minimal_cfg->set('AutoFormat.AutoParagraph', true);
$purifier_minimal_html = new HTMLPurifier($purifier_minimal_cfg);

$purifier_featured_html_cfg = HTMLPurifier_Config::createDefault();
$purifier_featured_html_cfg->set('HTML.Allowed', 'a[href],abbr[title],blockquote,br,cite,code,del,div,em,hr,h1,h2,h3,h4,h5,h6,img[alt|src],li,ol,p,s,small,span,strong,table,tbody,td,tfoot,th,thead,tr,ul');
$purifier_featured_html_cfg->set('AutoFormat.AutoParagraph', true);
$purifier_featured_html = new HTMLPurifier($purifier_featured_html_cfg);

if ($purifier_featured_html->purify($html_string) == $purifier->purify($html_string))
echo 'this is bad!';

0

Решение

Кажется, работает хорошо для меня:

ezyang@sabre:~/Dev/htmlpurifier$ cat test.php
<?php
ini_set('display_errors', TRUE);
error_reporting(E_ALL);

include_once 'library/HTMLPurifier.auto.php';

//this isn't working right
$default_cfg = HTMLPurifier_Config::createDefault();
$purifier = new HTMLPurifier($default_cfg);

$purifier_minimal_cfg = HTMLPurifier_Config::createDefault();
$purifier_minimal_cfg->set('HTML.Allowed', 'em,strong,p,br');
$purifier_minimal_cfg->set('AutoFormat.AutoParagraph', true);
$purifier_minimal_html = new HTMLPurifier($purifier_minimal_cfg);

$purifier_featured_html_cfg = HTMLPurifier_Config::createDefault();
$purifier_featured_html_cfg->set('HTML.Allowed', 'a[href],abbr[title],blockquote,br,cite,code,del,div,em,hr,h1,h2,h3,h4,h5,h6,img[alt|src],li,ol,p,s,small,span,strong,table,tbody,td,tfoot,th,thead,tr,ul');
$purifier_featured_html_cfg->set('AutoFormat.AutoParagraph', true);
$purifier_featured_html = new HTMLPurifier($purifier_featured_html_cfg);

$html_string = "<abbr>asdf</abbr>";
if ($purifier_featured_html->purify($html_string) == $purifier->purify($html_string))
echo 'this is bad!';
ezyang@sabre:~/Dev/htmlpurifier$ php test.php
ezyang@sabre:~/Dev/htmlpurifier$
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]