如何处理HTML摘录?

时间:2010-01-04 03:12:27

标签: php html

它引入了很多非封闭的标签,如下所示:

<div>
<table>...</table>

</div>被这样的代码截断:

(strlen($row['body']) > 200 ? substr($row['body'],0,200) . '...' : $row['body'])

整个页面的布局被打破了,如何处理?

3 个答案:

答案 0 :(得分:4)

假设$row['body']包含要截断为200个可见字符的HTML:

删除HTML标记

这是最快的修复,但可能不是您想要的:

$body= strip_tags($row['body']);
echo(strlen($body) > 200 ? substr($body,0,200) . '...' : $body);

解析HTML并截断文字

使用PHP的DOMDocument类,您可以解析HTML,检查HTML标记中的文本长度,计算内容中文本的长度,并从{{{}中包含的HTML中删除任何标记。 1}}同时保留格式良好的HTML。

答案 1 :(得分:1)

以下是如何创建包含有效HTML的帖子预览或摘录的示例。它使用PHP的DOMDocument解析HTML,因为leepowers建议:

http://bizzybytes.com/html-excerpt-php

答案 2 :(得分:0)

我认为你为了简洁而将其遗漏了,但我看不到标签

应该是

<div>
<table><tr><td>...</td></tr></table>

同样使用以下内容,您可能在$ row ['body']

中嵌入了html
(strlen($row['body']) > 200 ? substr($row['body'],0,200) . '...' : htmlspecialchars($row['body']))

DC