Сокращение длины строки PHP и вставка эллипсов - PullRequest
5 голосов
/ 19 июня 2010

Я хочу превратить длинную строку, такую ​​как reallyreallyreallyreallyreallylongfilename, во что-то вроде reallyreallyre...yreallyreally.

По сути, найдите середину строки и заменяйте все там, пока длина строки не станет <30 символов, включаяэллипсы для обозначения замененных частей строки. </p>

Это мой код, в котором я пробовал это:

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)

Спасибо.

1 Ответ

8 голосов
/ 19 июня 2010

Как насчет:

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