HTML Purifier保留空间

时间:2014-11-03 01:15:31

标签: php htmlpurifier

有没有让HTML Purifier保留通常在呈现的HTML中看到的隐含空间?

例如,在以下情况下,您通常会在FooBar之间留出空格:

Foo<br/>Bar

Example 1

<div>Foo</div><div>Bar</div>

Example 2

2 个答案:

答案 0 :(得分:1)

我有一个残酷的计划 - 更换任何关闭的标签&#34;&gt;&#34;空格并删除双空格

<?php
$text = '<div>test</div><div>me</div>';

$text = preg_replace('/(<\/[a-z]+>)/', '$1 ', $text);
$text = trim(preg_replace('/\s+/', ' ', strip_tags($text)));

var_dump($text);

返回

string(7) "test me"

答案 1 :(得分:1)

看起来HTMLPurifier并没有删除空格,它们一起删除标签,因为它不识别它们(这很奇怪)。

关于Foo<br/>Bar

  • Error Line 1, Column 3: Unrecognized <br /> tag removed

关于<div>Foo</div><div>Bar</div>

  • Error Line 1, Column 0: Unrecognized <div> tag removed
  • Error Line 1, Column 8: Unrecognized </div> tag removed
  • Error Line 1, Column 14: Unrecognized <div> tag removed
  • Error Line 1, Column 22: Unrecognized </div> tag removed

您可以通过在现场演示中启用CollectErrors来查看此内容。

enter image description here

也许尝试允许divbrhttp://htmlpurifier.org/live/configdoc/plain.html#HTML.AllowedElements

以下是Live Demo的结果:

enter image description here