PHP 5.4.33 Released

mb_strimwidth

(PHP 4 >= 4.0.6, PHP 5)

mb_strimwidthTronque une chaîne

Description

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

Tronque la chaîne str à la longueur width.

Liste de paramètres

str

La chaîne à tronquer.

start

start est l'offset de départ, en nombre de caractères depuis le début de la chaîne (cela commence à 0).

width

La taille à tronquer.

trimmarker

trimmarker est la chaîne ajoutée à la fin de la chaîne tronquée.

encoding

Le paramètre encoding est l'encodage des caractères. S'il est omis, l'encodage de caractres interne sera utilisé.

Valeurs de retour

La chaîne tronquée. Si trimmarker est défini, trimmarker sera ajouté à la valeur retournée.

Exemples

Exemple #1 Exemple avec mb_strimwidth()

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

Voir aussi

add a note add a note

User Contributed Notes 3 notes

up
1
josiah dot ritchie at gmail dot com
7 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