0

現在、私は使用しています

substr("String name", 0, 10).'...'

10 を超える単語を ... に置き換えるには

しかし、「絆」という簡単な言葉でも使っていることに気づきました。

substr("Bond", 0, 10).'...';

「...」は引き続き表示されます。文字数制限を超えている単語のみが「...」を使用できるようにするにはどうすればよいですか

4

4 に答える 4

1

このようなものが役立つかもしれません:

function str_curtail($str, $length = 35, $append = '...')
{
    // String short enough already ?
    if (strlen($str) <= $length) {
        return $str;
    }
    $str = substr($str, 0, $length);
    for ($i=$length - 1; !ctype_space($str{$i}); --$i); // No body intentionally
    $str = rtrim(substr($str, 0, $i));
    return $str . $append;
}
于 2013-07-26T01:49:10.973 に答える
1

簡単な正規表現を使用できます。

$str = 'Hello world what is up';
preg_replace('/(.{10}).+/', '$1...', $str); //=> "Hello worl..."

少なくとも 10 文字が存在しない場合は、キャプチャ グループが一致しないため何も実行されません。

于 2013-07-26T01:49:34.007 に答える