文字

mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strimwidth获取按指定宽度截断的字符串

说明

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

width 字符串 str 截短。

参数

str

要截短的 string

start

开始位置的偏移。从这些字符数开始的截取字符串。(默认是 0 个字符)

width

所需修剪的宽度。

trimmarker

当字符串被截短的时候,将此字符串添加到截短后的末尾。

encoding

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

返回值

截短后的 string 。 如果设置了 trimmarker,还会将 trimmarker 追加到返回的值。

范例

Example #1 mb_strimwidth() 例子

<?php
echo  mb_strimwidth ( "Hello World" 0 10 "..." );
// 输出 Hello W...
?>

参见

  • mb_strwidth() - 返回字符串的宽度
  • mb_internal_encoding() - 设置/获取内部字符编码

用户评论:

[#1] Rich Mehta [2014-05-22 14:58:41]

I had a problem (as in another comment) with a space being between the trailing dots and the subject being truncated. Here's how I fixed it:

<?php str_replace" .""."mb_strimwidth$subject030"..." ) ); ?>

[#2] CBieser [2008-08-26 00:50:44]

<?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/);
    
$secondStart mb_strwidth$value$valueEncoding ) - ( $length $firstWidth );
    
$secondWidth $length $firstWidth +1;
    
$limited mb_strimwidth$value0$firstWidth'...'$valueEncoding ) . mb_substr$value$secondStart$secondWidth$valueEncoding );
    return 
$limited;
}
?>

[#3] josiah dot ritchie at gmail dot com [2007-09-13 11:48:45]

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

上一篇: 下一篇: