downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

mb_stripos> <mb_strcut
[edit] Last updated: Fri, 17 May 2013

view this page in

mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strimwidth指定した幅で文字列を丸める

説明

string mb_strimwidth ( string $str , int $start , int $width [, string $trimmarker [, string $encoding ]] )

文字列 str を指定した幅 width で丸めます。

パラメータ

str

丸めたい文字列。

start

開始位置のオフセット。文字列の始めからの文字数 (最初の文字は 0) です。

width

丸める幅。

trimmarker

丸めた後にその文字列の最後に追加される文字列。

encoding

encoding パラメータには文字エンコーディングを指定します。省略した場合は、 内部文字エンコーディングを使用します。

返り値

丸められた文字列を返します。 trimmarker が設定された場合、 trimmarker が丸められた文字列に追加されます。

例1 mb_strimwidth() の例

<?php
echo mb_strimwidth("Hello World"010"...");
// Hello W... と出力します
?>

参考



add a note add a note User Contributed Notes mb_strimwidth - [2 notes]
up
1
josiah dot ritchie at gmail dot com
5 years ago
While having the option to append a string to the end is nice, you can run into the problem of having a space between the append if the width is truncated after a space. I find something like this to be more attractive in the output, although messy in the code.

rtrim(mb_strimwidth($string, 0, 24))."..."
up
0
CBieser
4 years ago
<?php
function strimwidthCenter( $value, $length = 40 ) {
   
$valueEncoding = mb_detect_encoding( $value, 'auto', true );
    if (
$length >= mb_strwidth( $value, $valueEncoding ) ) {
        return
$value;
    }
   
$limited = '';
   
$firstWidth = ceil( $length/2 );
   
$secondStart = mb_strwidth( $value, $valueEncoding ) - ( $length - $firstWidth );
   
$secondWidth = $length - $firstWidth +1;
   
$limited = mb_strimwidth( $value, 0, $firstWidth, '...', $valueEncoding ) . mb_substr( $value, $secondStart, $secondWidth, $valueEncoding );
    return
$limited;
}
?>

 
show source | credits | stats | sitemap | contact | advertising | mirror sites