2012-07-31 68 views
-2

我使用NicEdit作为我的网站的富文本编辑器。在我编辑文本后,它存储在我的数据库中。如何从CSS样式中释放段落?

说我已经编辑了一些文本,并将其存储这样的内容领域:

<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>。因此,页面中的其他内容完全搞砸了。

什么是解决方案?

+0

您不能只是截断HTML片段的结尾 - 如果跨越切点的任何“打开”标记,则会打破整个DOM结构。您需要使用DOM操作来重建字符串,并消除超出切点的text-but-not-tags。 – 2012-07-31 16:52:28

+0

可能重复[如何关闭未关闭的HTMl标签?](http://stackoverflow.com/questions/3059398/how-to-close-unclosed-html-tags) – 2012-07-31 16:54:18

+0

我认为你有一对多) 。如果(strlen($ row ['content'])> 50){ – Jim 2012-07-31 16:54:46

回答

0

echo substr(strip_tags($row['content']),0,50)

然后,当他们 '获取更多的' 不跑strip_tags()

更新..

+0

谢谢..它工作。 – 2012-07-31 16:59:13

+0

没问题,如果您使用它作为您的解决方案,可能会标记为答案。 – Zac 2012-07-31 17:02:20

+0

现在还有另一个问题。它剥离标签但在其位置添加空白空间。因此,虽然显示..它显示没有什么..或几乎没有字符,即使我已经使用substr($ data,0,250) – 2012-07-31 17:09:00

0

最简单的方法 - 仅使用strip_tags()函数将摘要文本显示为“纯文本”。

0

我会建议使用strip_tags,因为没有简单的方法来自动关闭标签。但是,您可以看一下这个问题:How to close unclosed HTML Tags?

+0

谢谢..这是我正在寻找。 – 2012-07-31 16:58:22

+0

现在还有另一个问题。 它是剥离标签,但在其位置添加空的空间。所以,虽然显示..它显示没有什么..或很少的字符,即使我已经使用substr($ data,0,250) – 2012-07-31 17:05:30