它引入了很多非封闭的标签,如下所示:
<div>
<table>...</table>
</div>
被这样的代码截断:
(strlen($row['body']) > 200 ? substr($row['body'],0,200) . '...' : $row['body'])
整个页面的布局被打破了,如何处理?
答案 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建议:
答案 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