使用 'read more' link 限制可读文本?

Limit readable text with a 'read more' link?

我遇到了这个问题,如何在其下方添加 'read more' link 限制可读文本。我正在制作自己的 cms 系统作为学校项目,所以我想向其中添加该功能。

我已经做到了,所以我能够创建一篇文章,但是如果我在一篇文章中写了 1000 字,文本就会继续。我只知道如何将文本限制在 50-100 个字。

之前有人做过这个可以帮我看看他们是怎么做的吗?

想法是有两种方法 GetPreview(id, n)GetArticle(id),其中第一个 returns 仅来自 Article 的第一个 n 个单词和 link 到调用第二种方法的页面。

假设 $articleText 是您文章的内容,并且 word 被认为是用空格分隔的,这就是 GetPreview 的一部分功能将如下所示:

$words = explode(" ", $articleText);
if (count($words) <= $n)
   return $articleText; //unchanged

$preview = array_splice($words, 0, $n); //n is the number of words
return implode(" ", $preview) . "... <br />" .
<a href=\"ViewArticle.php?id=" . $articleId . "\">Read More </a>";

其中 ViewArticle.php 应该是加载整篇文章的另一个页面。 但是,这是一个适用于纯文本文章的示例。如果您的文章包含 HTML,则提取预览的方法会变得更加复杂,因为您不希望它破坏 HTML 标记中间的内容。

另一种方法,实际上更安全并且在流行的 CMS(如 WordPress)中使用,是 装饰 您的文章,带有特定的 HTML 评论,例如:

<!-- more -->

当您显示整篇文章时,您不需要做任何特别的事情,因为这不会被浏览器显示(记住,这是评论)。

但是,在您的 GetPreview 方法中搜索此字符串,如果找到它:

  • 你得到它前面的文字
  • 您附加 'Read More' link 将您重定向到完整文章

这种方法有很多优点:

  • 您可以放心地在您的文章中使用 HTML。
  • 作者可以完全控制预览的外观。