小编irf*_*mir的帖子

截断字符串,但删除字符串的中间而不是结束

我想出了这个函数,它将给定的字符串截断为给定数量的单词或给定数量的字符,无论是更短的.然后,在字符数或字数限制之后切断所有内容后,它会在字符串后附加一个"...".

如何从字符串中间删除字符/单词并用'...'替换它们而不是用'...'替换末尾的字符/单词?

这是我的代码:

function truncate($input, $maxWords, $maxChars){
    $words = preg_split('/\s+/', $input);
    $words = array_slice($words, 0, $maxWords);
    $words = array_reverse($words);

    $chars = 0;
    $truncated = array();

    while(count($words) > 0)
    {
        $fragment = trim(array_pop($words));
        $chars += strlen($fragment);

        if($chars > $maxChars){
            if(!$truncated){
                $truncated[]=substr($fragment, 0, $maxChars - $chars);
            }
            break;
        }

        $truncated[] = $fragment;
    }

    $result = implode($truncated, ' ');

    return $result . ($input == $result ? '' : '...');
}
Run Code Online (Sandbox Code Playgroud)

例如,如果truncate('the quick brown fox jumps over the lazy dog', 8, 16);被调用,则16个字符更短,因此将发生截断.因此,'狐狸跳过懒狗'将被删除,'...'将被追加. …

php string truncate

10
推荐指数
2
解决办法
5576
查看次数

懒惰加载long <ul>的最简单方法有很多<li>

延迟加载许多(65+)列表项的长列表()的最简单方法是什么?

延迟加载我的意思是只加载视口中可见的列表项.一旦列表项在视口中可见,然后加载它.

我看过许多无限滚动和延迟加载插件,但它们似乎都不仅仅是一个很长的列表.

它们似乎都是一个很长的图像列表,或者是一个与前一个和下一个按钮分页的列表.

我的HTML只是一个包含许多列表项的文本列表,如下所示:

<ul>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li>
    <li>list item</li> …
Run Code Online (Sandbox Code Playgroud)

java jquery load lazy-loading infinite-scroll

1
推荐指数
1
解决办法
9444
查看次数

标签 统计

infinite-scroll ×1

java ×1

jquery ×1

lazy-loading ×1

load ×1

php ×1

string ×1

truncate ×1