减少PHP字符串的长度并插入省略号

VIV*_*NWO 5 php string trim ellipsis

我想把一个很长的字符串reallyreallyreallyreallyreallylongfilename变成类似的东西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);
}
Run Code Online (Sandbox Code Playgroud)

它找到了字符串的中心并替换了一边的字符,.但事情是我无法弄清楚如何将其剪切为30个字符,或者其他什么$maxLen.

希望你理解我的问题,我认为我没有很好地解释它8)

谢谢.

Vot*_*ple 8

怎么样:

if (strlen($input) > $maxLen) {
    $characters = floor($maxLen / 2);
    return substr($input, 0, $characters) . '...' . substr($input, -1 * $characters);
}
Run Code Online (Sandbox Code Playgroud)

  • 呃,它应该把```放在字符串James的中间,那里有两个substr调用. (2认同)