【发布时间】:2012-07-31 16:49:01
【问题描述】:
我正在使用NicEdit 作为我网站的富文本编辑器。在我编辑文本后,它会存储在我的数据库中。
假设我已经编辑了一些文本,它像这样存储在内容字段中:
<div> This is just some sample <b>text that is displayed </b> to help <a href="#"> My example </a> </div>
现在,当我想在我的主页中显示部分内容并添加“阅读更多”链接以便用户可以访问实际页面时。
<?php
echo substr($row['content'],0,50);
if(strlen($row['content']))>50 ) {
echo "<a href=\"#\"> read more </a>";
}
?>
所以上面的代码会提取说:
<div> This is just some sample <b>text
来自表格的内容字段。当它显示在页面上时,我们可以看到<div> 和<b> 都没有关闭。所以页面中的其余内容完全混乱了。
有什么解决办法?
【问题讨论】:
-
你不能只砍掉 HTML sn-p 的结尾——如果有任何“打开”标签跨越切割点,你会破坏整个 DOM 结构。您需要使用 DOM 操作来重建字符串并消除超出剪切点的 text-but-not-tags。
-
我认为您的声明中有一对多 )。 if(strlen($row['content'])>50) {