【问题标题】:How to free a paragraph from its CSS style?如何从其 CSS 样式中释放段落?
【发布时间】: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 

来自表格的内容字段。当它显示在页面上时,我们可以看到&lt;div&gt;&lt;b&gt; 都没有关闭。所以页面中的其余内容完全混乱了。

有什么解决办法?

【问题讨论】:

  • 你不能只砍掉 HTML sn-p 的结尾——如果有任何“打开”标签跨越切割点,你会破坏整个 DOM 结构。您需要使用 DOM 操作来重建字符串并消除超出剪切点的 text-but-not-tags。
  • 我认为您的声明中有一对多 )。 if(strlen($row['content'])>50) {

标签: php css strlen


【解决方案1】:

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

然后当他们“得到更多”时不要运行strip_tags()

更新了..

【讨论】:

  • 没问题,如果您将其用作解决方案,则可能标记为答案。
  • 现在还有一个问题。它正在剥离标签,但在其位置添加空白空间。因此,在显示 .. 时,即使我使用了 substr($data,0,250),它也显示不出任何内容。
  • 试试这个:echo substr(strip_tags($row['content']),0,50)
  • 我使用了substr(trim(strip_tags($row['content'])),0,50),效果很好..删除了标签..删除了开头的空白并显示了它。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    看看php的strip_tags()函数: http://php.net/manual/de/function.strip-tags.php

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 现在还有一个问题。它正在剥离标签,但在其位置添加空白空间。因此,在显示 .. 时,即使我使用了 substr($data,0,250),它也显示不出任何内容。
      猜你喜欢
      • 2018-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多