5

我有一堆 HTML 数据正在使用 PHP 写入 PDF 文件。在 PDF 中,我希望剥离和清理所有 HTML。例如:

<ul>
    <li>First list item</li>
    <li>Second list item which is quite a bit longer</li>
    <li>List item with apostrophe 's 's</li>
</ul>

应该变成:

First list item
Second list item which is quite a bit longer
List item with apostrophe 's 's

但是,如果我简单地使用strip_tags(),我会得到这样的结果:

   First list item&#8232;

   Second list item which is quite a bit
longer&#8232;

   List item with apostrophe &rsquo;s &rsquo;s

还要注意输出的缩进。

关于如何正确地将 HTML 清理为漂亮、干净的字符串而没有混乱的空格和奇怪的字符的任何提示?

谢谢 :)

4

3 回答 3

5

这些字符似乎是 html 实体。尝试:

html_entity_decode( strip_tags( $my_html_code ) );
于 2012-05-04T07:33:18.567 回答
3

您可以使用html_entity_decode解码 strip_tags 的结果或使用 preg_replace 删除它们:

$text = strip_tags($html_text);
$content = preg_replace("/&#?[a-z0-9]{2,8};/i","",$text );

并从行的开头删除空格,请使用ltrim

$content = join("\n", array_map("ltrim", explode("\n", $content )));

要保留撇号,请改用:

$text = strip_tags($html_text);
$text = str_replace("&rsquo;","'", $text); 
$content = preg_replace("/&#?[a-z0-9]{2,8};/i","",$text );
于 2012-05-04T07:37:12.370 回答
0

使用PHP Tidy库来清理你的 html。但在你的情况下,我会使用DOMDocument类从 html 获取数据。

于 2012-05-04T07:28:05.747 回答