使用 '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。
- 作者可以完全控制预览的外观。
我遇到了这个问题,如何在其下方添加 '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。
- 作者可以完全控制预览的外观。