Использование последней версии HTMLPurifier с настройками по умолчанию.
Следующий код вызовет такую прекрасную пустую белую страницу в PHP. Я что-то пропустил? Даже если я установлю HTML.TidyLevel на light
или none
, он все равно сломается. Вот частичный журнал ошибок, возникающих при попытке очистить код ниже: http://pastie.org/private/13f0htscq0v8bhhlt7dpg
Для справки вот соответствующий код, который я использую для этого:
$config = new HTMLPurifier_Config(new HTMLPurifier_ConfigSchema());
$config->set('HTML.TidyLevel', 'light'); // breaks with any level, even 'none'
self::$pure = new HTMLPurifier($config);
self::$pure->purify($str); // $str contains the code below
И, наконец, код обидчика:
<code>
<style type="text/css">
.block {
position: relative;
}
.block h2 a span {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
outline: 1px dashed #000;
}
</style>
<div class="block">
<h2><a href="#"><span></span>Title of block</a></h2>
<p>This entire block is clickable</p>
<ul>
<li>Use</li>
<li>Any</li>
<li>Markup you like</li>
</ul>
<div>Even more divs!</div>
<p>without worrying about whether the element is allowed to be a child of an anchor</p>
</div>
</code>