Очиститель HTML очищает тег p - PullRequest
2 голосов
/ 18 августа 2011

По какой-то причине html очиститель очищает теги p.Это происходит, когда p находится внутри тега span.Например:

<span class=\"large gray content_text article_text\">
<p>111111</p>
<p>222222</p>
<p>333333</p>
</span>

Вывод:

<span>111111

2222222

3333333</span>

Моя конфигурация htmlpurifier:

$config = HTMLPurifier_Config::createDefault();
$config -> set('Core.Encoding', 'UTF-8');
$config -> set('HTML.Doctype', 'XHTML 1.0 Transitional');
$config -> set('HTML.TidyLevel','none');
$config -> set('HTML.Allowed', 'p, a[href|rel], span[style], img[src|style], object[height|width|data], param[name|value|allowscriptaccess|allowfullscreen|height|width], br, strong, em');
$config -> set('CSS.AllowedProperties', 'font-weight, font-style, text-decoration, color, width, height');
$config -> set('HTML.SafeObject', 'true');
$config -> set('Output.FlashCompat', 'true');
$config -> set('HTML.FlashAllowFullScreen', 'true');
$schemes = array('http' => true, 'https' => true);
$config -> set('URI.AllowedSchemes', $schemes);
$purifier = new HTMLPurifier($config);
$content = $purifier -> purify($content);

Ответы [ 2 ]

1 голос
/ 18 августа 2011

<span> - встроенный элемент, неправильно помещать в него теги уровня <p>.

Используйте <div> вместо <span>.

0 голосов
/ 18 августа 2011

Хм, очиститель HTML должен иметь вывод:

<span class="large gray content_text article_text"></span>
<p><span class="large gray content_text article_text">111111</span></p>
<p><span class="large gray content_text article_text">222222</span></p>
<p><span class="large gray content_text article_text">333333</span></p>
<span class="large gray content_text article_text"></span>
...