Page 1 sur 1

Réduction logique d'un titre

Posté : 28 août 2008, 10:58
par Jean75
Bonjour,

Je cherche une solution pour réduire une chaîne de caractère soit un titre de news.

J'ai un titre qui peut faire au max 30 caractères lors de l'affichage. J'ai donc pris la solution avec:
substr('Je suis le nouveau titre du blog de Jean de Larue', 0, 30));

Je vais donc avoir une chaîne de 30 caractères. Mais généralement le dernier mot est coupé en plein milieu et ne veux plus rien dire.
Je cherche donc au solution pour réduire mon titre de manière logique:

titre normal: "je suis une titre de grande news"
titre avec découpe logique: "Je suis une titre..."

Si vous avez une solution; merci d'avance.

Bonne journée

Posté : 28 août 2008, 11:16
par @rthur
Bonjour,

Voici une approche:
1) tu coupes à la longueur maximale que tu veux (par exemple 30, tu l'as déjà fait)
2) dans ton titre coupé, tu recherches le dernier espace : http://fr.php.net/strrpos
3) tu recoupes ta chaine à la position récupérée précédemment

Ainsi tu va couper sur un espace et pas au milieu d'un mot :)

Posté : 28 août 2008, 11:27
par Truc
Des solutions sont existantes sur le forum... essaie une recherche avec "tronquer" :-k

*** me rend compte que je dis ça à chaque fois... mais ça existe ***

Posté : 28 août 2008, 11:47
par Invité
Voilà trouvé sur le site du Zero:

Code : Tout sélectionner

function extrait($string,$start = 30,$end = 0,$sep = '...') { $extrait = substr($string,0,$start); $extrait = substr($string,0,strrpos($extrait,' ')).$sep; $extrait2 = strstr(substr($string, -$end,$end),' '); return $extrait.' '.$extrait2; }