Réduire un texte à n caractères sans couper de mot

Contenu du snippet

Permet simplement de passer une chaîne de caractères, avec balises HTML ou pas, et de récupérer une chaîne raccourci à + ou - N caractères en fonction de la marge qui permet de ne pas couper en plein milieu d'un mot.
La longueur est à 100 caractères par défaut, la marge à 10, n'empêchant pas de les modifier dans l'appelle ou les fixer selon vos souhaits lorsque vous l'intégrerez dans votre fichier de fonctions.

Source / Exemple :


/*
Fonction qui réduit un texte $texte à $long caractère + $marge de marge pour essayer de pas couper un mot
@param string $text Contient un texte, même avec des balises HTML (qui seront retirer en sortie)
@param int $long Nombre de caractère souhaité
@param int $marge Permet de se donner une marge pour éviter de couper un mot mais aussi avoir une limite ferme
@return string

  • /
function coupeCourt($texte,$long,$marge=10){ $msg = stripslashes($texte) ; $msg = preg_replace("'<[^>]+>'U", "", trim(strip_tags($msg)) ) ; $taille = strlen($msg) ; if($long < $taille){ $message = substr($msg, 0, $long) ; $i = $long ; if ($i < $taille){ while ($msg[$i] != " " && isset($msg[$i]) && $i < ($long+$marge) ){ $message .= $msg[$i] ; $i++ ; } } if ($i < $taille){ $message .= "..." ; } }else{ $message = $msg ; } return ($message) ; }

Conclusion :


J'espère que ça ira, aidera... première contribution!
C'est un code que je me sers pour générer le contenu d'un headline actu, c'est simple mais ça peut servir!

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.