0

我在这里遇到了一个奇怪的问题,需要你的帮助。PHP 语言。

假设我有这样的输出:

A
B
C
D
E

现在不是 5 行,而是 2 行,第 3 行将是“更多”,这将带他到另一个页面了解详细信息(我知道如何放置锚标签:S)

如果输出就像

这是一个 5 行或更多行的大段落,但我想显示的只是前 100 个(或一些前 n 个字符)。重复 这是一个 5 行或更多的大段落,但我想要显示的只是前 100 个(或一些前 n 个字符)这是一个 5 行或更多的大段落,但我想要显示的只是前 100 个(或一些前 n 个字符)这是一个 5 行或更多的大段落,但我要显示的只是前 100 个(或一些前 n 个字符)这是一个 5 行或更多的大段落,但我想显示的只是前 100 个(或一些前 n 个字符)。

而不是这个,我只想显示前 100 个字符,然后是一个更多按钮,它将进入详细页面。

第二个问题可以用 php 函数 substr 解决,但是第一个问题呢?我需要两种情况在同一个地方工作,比如如果输入在开始时有一些列表(换行符的地狱),那么只会打印前 2 行如果它是一个段落,那么只有前 100(或一些 n)个字符(或甚至单词)将被打印。
有什么猜测吗?

4

2 回答 2

0

您可以使用substr然后 ajax 来加载整个字符串。但您也可以使用 CSS 显示前 X 行 - 设置heightoverflow: hidden. 然后再次使用 javascript 取消设置高度和溢出。

于 2013-09-05T14:53:41.197 回答
0

我的实现将是这样的:

if (strpos("\n", $mytext) > -1) {
    $textarray = explode("\n", $mytext);
    $output = $textarray[0] . "\n" . $textarray[1];
} else {
    $output = $mytext;
}
$output = substr($output, 0, 100);

除了严格的 100 个字符限制之外,还有更优雅的方式来处理文本末尾的截断,但我想分享的主要内容是if语句部分。

于 2013-09-05T14:53:42.620 回答