Page 1 sur 1

[Tuto PHP] Couper une chaine de caractères proprement

Posté : mercredi, 21 mai 2008, 05:12
par Keroin
Tuto : Couper une chaine de caractères sans couper au milieu d'un mot


Voici une petite fonction PHP qui va permettre de découper automatiquement un texte récupéré depuis une base mysql (par exemple) sans que cette coupure arrive au milieu d'un mot. Cette fonction est utile si vous souhaitez n'afficher que les premier mots d'un texte (en guise d'introduction par exemple).

Code : Tout sélectionner

// on peut remplacer par une donnée issue d'une base sql (ex: $chaine = $sql['texte'];)
$chaine = "Le texte à tronquer"; 

$lg_max = 160; //nombre de caractères autorisés

//On vérifie si le texte est plus grand que le nombre de caractères spécifiés
if (strlen($chaine) > $lg_max) 

//Si la réponse est non le script ne fait rien mais si c'est oui on continue...
{
    $chaine = substr($chaine, 0, $lg_max);
//on cherche l'espace le plus proche du maximum des caractères autorisés (ici 160)    
    $last_space = strrpos($chaine, " "); 
//On ajoute ... à la suite de cet espace    
    $chaine = substr($chaine, 0, $last_space)."..."; 
}

echo $chaine;
        
On peut également personnaliser l'echo (l'affichage du résultat) en ajoutant un lien vers la page contenant le texte intégral

Code : Tout sélectionner

echo  $chaine.'...<a href="URL_de_la_page" title="lire la suite" >(Lire la suite)</a>';       
Vous pouvez commenter ou posez vos questions sur ce tutoriel à la suite de ce message.