現在、私は使用しています
substr("String name", 0, 10).'...'
10 を超える単語を ... に置き換えるには
しかし、「絆」という簡単な言葉でも使っていることに気づきました。
substr("Bond", 0, 10).'...';
「...」は引き続き表示されます。文字数制限を超えている単語のみが「...」を使用できるようにするにはどうすればよいですか
このようなものが役立つかもしれません:
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;
}
簡単な正規表現を使用できます。
$str = 'Hello world what is up';
preg_replace('/(.{10}).+/', '$1...', $str); //=> "Hello worl..."
少なくとも 10 文字が存在しない場合は、キャプチャ グループが一致しないため何も実行されません。