5

のような長い文字列をのような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);
}

文字列の中心を見つけて、どちらかの側の文字を置き換えます.が、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 に答える