Couper une chaine de caractere apres x caractere, et sans tronquer un mot

Soyez le premier à donner votre avis sur cette source.

Snippet vu 31 226 fois - Téléchargée 30 fois

Contenu du snippet

Ce petit code tout bete, peut servir pour des news en page d'accueil par ex, ou vous ne voulez afficher que X caracteres, mais sans tronquer un mot en plein milieu

Source / Exemple :


$max = 200;  

if (strlen($chaine) >= $max) {
  $chaine = substr($chaine, 0, $max);  
  $espace = strrpos($chaine, " ");  
  $chaine = substr($chaine, 0, $espace)."...";
}

A voir également

Ajouter un commentaire

Commentaires

matrey
Messages postés
399
Date d'inscription
jeudi 31 janvier 2002
Statut
Membre
Dernière intervention
6 septembre 2004
-
vu seulement 458 457 875 985 478 548 784 578 fois sur le site :Dla dernière fois (regarde aussi le commentaire que j'avais mis) : http://www.phpcs.com/code.aspx?ID=21095
i0Lo
Messages postés
62
Date d'inscription
jeudi 7 novembre 2002
Statut
Membre
Dernière intervention
5 mai 2004
-
ahahahahhahahhhhahha, hum désolé ^^
Tu penses Matrey? c'est pas plutot 458 457 875 985 478 548 784 579 ?
A moins que j'ai fait une erreur de calcul
Bon serieusement Nykola51 je suis sur que tu peux faire mieux :p, bonne continuation
cs_FreakDev
Messages postés
17
Date d'inscription
lundi 16 février 2004
Statut
Membre
Dernière intervention
23 février 2009
-
ouai... C sympa mais le pb...le pb...

je vais donner mon exemple pour illustrer le pb...

je fais un générateur de pdf
j'inscris du texte dans un tableau(dans mon futur PDF). ce texte ne dois pas dépasser les colonnes du tableau et donc passer à la ligne automatiquement si la chaine est trop longue.

si la longueur max est 40 caractères (pour la ligne) et que je fixe ma variable $max à 30 pour prévoir et que l'espace suivant est à 11 caractère... je suis mort...

arf

pas top comme fonction...
disons plutot util mais pas dans mon cas...

merci quand même...
cs_PIM44
Messages postés
3
Date d'inscription
dimanche 27 avril 2003
Statut
Membre
Dernière intervention
16 juin 2009
-
Salut, merci pour ton code, je l'utilise de cette manière si ça peut vous servir :

function tronquer($chaine,$debut,$max,$ponct='...')
{
if (strlen($chaine) >= $max)
{
$chaine = substr($chaine, $debut, $max);
$espace = strrpos($chaine, " ");
$chaine = substr($chaine, $debut, $espace).$ponct;
return $chaine;
}
}


a+

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.