5

我想把一个长字符串 likereallyreallyreallyreallyreallylongfilename变成类似reallyreallyre...yreallyreally.

基本上,找到字符串的中间并替换那里的所有内容,直到字符串的长度小于 30 个字符,包括一个省略号,表示字符串的某些部分已被替换。

这是我尝试过的代码:

function cutString($input, $maxLen = 30)
{
    if(strlen($input) < $maxLen)
    {
        return $input;
    }

    $midPoint = floor(strlen($input) / 2);
    $startPoint = $midPoint - 1;

    return substr_replace($input, '...', $startPoint, 3);
}

它找到了字符串的中心并替换了两边的一个字符,.但问题是我无法弄清楚如何将它减少到 30 个字符,或者其他什么$maxLen

希望你能理解我的问题,我认为我在解释它方面做得不是很好 8)

谢谢。

4

1 回答 1

8

怎么样:

if (strlen($input) > $maxLen) {
    $characters = floor($maxLen / 2);
    return substr($input, 0, $characters) . '...' . substr($input, -1 * $characters);
}
于 2010-06-19T17:27:53.143 回答