Limiter la taille d’un texte sans couper le dernier mot (en php)
par Nakuni / 30 mars 2010
Je viens de passer un moment à chercher une expression régulière me permettant de limiter la taille d’un texte sans couper la chaîne en plein milieu d’un mot.
Finalement je dois vraiment être trop noob en expressions régulières car je n’ai pas trouvé, mais j’ai trouvé une alternative.
function racourcirtexte($texte, $taille){ //on coupe à l'arrache $texte=substr($texte, 0, $taille); //on vire la dernière suite de caractère (le dernier mot qu'il soit coupé ou pas) $pattern = '#[[:space:]][^ ]+$#iU'; $texte = preg_replace($pattern, "", $texte); return $texte; }
Si quelqu’un à mieux, je suis preneur
EDIT: Quelqu’un à mieux! Merci Jo helico (Hop un autre BL offert
):
function racourcirtexte($sText, $iLimit){ if(strlen($sText) > $iLimit){ $sText = substr($sText, 0, $iLimit); $sText = substr($sText, 0, strrpos($sText, ' ')); } return $sText; }
Tags : php
Classé dans : Dévellopement web
2 avril 2010 Ã 2:13
Plus simple et moins gourmand qu’une expression régulière :
function cutMe($sText, $iLimit)
{
if(strlen($sText) > $iLimit)
{
$sText = substr($sText, 0, $iLimit);
$sText = substr($sText, 0, strrpos($sText, ‘ ‘)) . ‘…’;
}
return $sText;
}
2 avril 2010 Ã 9:41
Non, ne me dîtes pas qu’il n’y a pas que des spameurs qui passent sur mon blog :p
En effet j’ai vraiment tendance à chercher compliqué pour faire simple, merci pour ta fonction qui va remplacer la mienne sur mon projet. Je vais éditer mon billet aussi
15 mai 2010 Ã 4:42
Le genre de détails qui peuvent faire la différence.
J’avoue n’y avoir jamais pensé mais c’est clairement super utile dans certaines formulaires.
Merci du partage, je test ça à l’occas.
9 juin 2010 Ã 1:33
Ce doit être utile, ok, mais je ne vois pas dans quelle situation tu as eu à couper un texte en JS ?
Je vois bien des cas avec un retour PHP/JSON, mais en Javascript seul… ?
C’est bête comme question mais jme demande, ça peut servir.
9 juin 2010 Ã 8:31
Effectivement c’est bête comme question car ce n’est pas du JS mais du PHP, du coup tu as perdu ton Back Link
12 juin 2010 Ã 0:26
Typiquement le genre de fonction utile à l’occasion, qu’on passe 3h à rechercher quand on en a besoin, sur le net, dans ses projets, alors qu’on mettrait moins de temps à la refaire :p
Je vais essayer de la mettre de coté pour la prochaine fois ou j’en aurais besoin tiens, ça sera toujours un peu de temps de gagner ! Merci ! \o/
1 juillet 2010 Ã 10:55
Ah ça c’est utile !
Je vais tenter de l’incorporer à WordPress pour mes excerpts..
Je vais voir ce que ça donne, merci en tout cas !
David
28 juillet 2010 Ã 16:39
Lol je cherche depuis des heures et même sur un forum bien connu on est pas foutu de m’aider !
Tu viens de me sauver la vie avec ton billet^^
1 août 2010 à 19:34
Chouette, merci pour cette fonction. J’utilisais auparavant une fonction devenu obsolète. J’avais trouvé des équivalents, mais ils étaient trop lourd.
Encore merci.
27 octobre 2010 Ã 11:50
As-tu essayé la fonction wordwrap. Il me semble qu’elle fait celà en natif, non ?
http://www.php.net/manual/fr/function.wordwrap.php
27 octobre 2010 Ã 14:47
Non, wordwrap c’est pour ajouter des sauts de ligne pour que chaque ligne ne dépasse pas un nombre donné de caractères.
2 décembre 2010 à 16:42
utile pour ne pas faire de duplicate, lorsqu’on a un site qui a des listing qui vont vers un détails (une soluce php bien mieux que le css)
22 juillet 2011 Ã 17:20
Ce sont ce genre de tuyaux qui rendent nos vies meilleures!