php

Limiter la taille d’un texte sans couper un mot

Comment limiter la longueur d’un texte sans couper un mot, ni avoir des problèmes d’accents ?

<?php
$lg_max = 20; // nombre de caractère autorisé
$description = strip_tags($description); // On retire toutes les balises
if (strlen($description) > $lg_max) { 
    $description = substr($description, 0, $lg_max) ;
    $last_space = strrpos($description, " ") ;
    $description = substr($description, 0, $last_space)."..." ;
}

echo $description ;

Exemple :

Texte : « Bonjour comment allez-vous ? »

Avec une limite classique à 20 caractères, cela couperait le mot « allez » mais avec ce petit bout de code cela donne : « Bonjour comment… »