Multibyte String 函数
在线手册:中文 英文
PHP手册

mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strimwidthGet truncated string with specified width

说明

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

Truncates string str to specified width.

参数

str

The string being decoded.

start

The start position offset. Number of characters from the beginning of string. (First character is 0)

width

The width of the desired trim.

trimmarker

A string that is added to the end of string when string is truncated.

encoding

encoding 参数为字符编码。如果省略,则使用内部字符编码。

返回值

The truncated string. If trimmarker is set, trimmarker is appended to the return value.

范例

Example #1 mb_strimwidth() example

<?php
echo mb_strimwidth("Hello World"010"...");
// outputs Hello W...
?>

参见


Multibyte String 函数
在线手册:中文 英文
PHP手册
PHP手册 - N: Get truncated string with specified width

用户评论:

CBieser (26-Aug-2008 08:50)

<?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;
}
?>

josiah dot ritchie at gmail dot com (13-Sep-2007 07:48)

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))."..."