它推出了很多非封闭标签象下面这样:如何处理html摘录?
(strlen($row['body']) > 200 ? substr($row['body'],0,200) . '...' : $row['body'])
而且整个页面的布局被打破,如何处理:
<div>
<table>...</table>
的</div>
由这样的代码被截断用它?
它推出了很多非封闭标签象下面这样:如何处理html摘录?
(strlen($row['body']) > 200 ? substr($row['body'],0,200) . '...' : $row['body'])
而且整个页面的布局被打破,如何处理:
<div>
<table>...</table>
的</div>
由这样的代码被截断用它?
假设$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时从$row['body']
中的HTML限制字符后删除任何标记。
您可以显示如何使用DOMDOcument执行此操作的示例? – JCM 2012-01-26 16:02:32
我假定你已经离开它为简洁,但我没有看到标记
应该
<div>
<table><tr><td>...</td></tr></table>
还可以使用下面的你可能有HTML嵌入在$行[“身体”]
(strlen($row['body']) > 200 ? substr($row['body'],0,200) . '...' : htmlspecialchars($row['body']))
DC
下面是如何创建一个帖子预览或摘录塔为例t包含有效的HTML。它解析使用PHP的DOM文档的HTML作为leepowers建议:
如果长度检查是检查文本内容的长度,那么这会更好,但不包括html标签本身。 – 2013-02-27 18:45:34
同意!但是有人说,有人比我更聪明,“过度优化是万恶之源”。更简单的方法是增加$ num_chars以适应更多的实际文本(减去html)。另一个变量和$ node-> textContent的使用会为你带来你想要的。 – Morgan 2013-09-12 22:29:58
这是什么具体到? – 2010-01-04 03:14:05