PHP 5.6.0 released

mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strimwidthGet truncated string with specified width

Descrição

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

Truncates string str to specified width.

Parâmetros

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

O parâmetro encoding é a codificação de caractere. Se ele é omitido, o valor da codificação de caractere interna é usado.

Valor Retornado

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

Exemplos

Exemplo #1 mb_strimwidth() example

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

Veja Também

add a note add a note

User Contributed Notes 3 notes

up
1
josiah dot ritchie at gmail dot com
6 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
-1
CBieser
6 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;
}
?>
up
-2
Rich Mehta
3 months ago
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( $subject, 0, 30, "..." ) ); ?>
To Top