2

「Stefan Äöüéèêë」のような言葉を口にしています。この文字列を 20 文字で切り詰めたいのですが... これには次のコードを使用しています。

$string = "Stefan Äöüéèêë";
if(strlen($string) > 20){
       $string = substr($string, 0, 20) . '...';      
}

安全に切り捨てられた文字列を取得するにはどうすればよいですか。

4

2 に答える 2

2

マルチバイト版を使用してください: http://php.net/manual/de/function.mb-substr.php

さらに、非常に便利なユニコードの安全でないメソッドのリストを以下に示します: http://www.phpwact.org/php/i18n/utf-8

注: strlen は間違った値を返します

于 2013-05-24T07:37:19.363 に答える
1

この友達を試してみてください。文字列をデコードすると、適切な長さの文字列が得られます。

$string = "Stefan Äöüéèêë";
$string= utf8_decode($string);
echo strlen($string);
if(strlen($string) > 10){
    $string = mb_substr($string, 0, 10);   
}
echo $string;
于 2013-05-24T07:53:52.183 に答える