Couper un texte après un espace

lafosca
WRInaute discret
WRInaute discret
 
Messages: 243
Inscription: 17 Avr 2003

Couper un texte après un espace

Message le Jeu Mai 17, 2007 9:25

Bonjour,

J'ai une envie de couper un texte après le 250ième caractère ...
J'ai utilisé une fonction qui coupe exactement après le 250ième caractère, mais je trouve pas ça super car ça coupe parfois en plein milieu d'un mot.

Avez-vous une fonction qui couperais le texte après le premier espace qui se trouve après le 250ièm caractère ?

Ce serait vraiment top :)

Philippe


reglysse
WRInaute discret
WRInaute discret
 
Messages: 150
Inscription: 19 Avr 2006

Message le Jeu Mai 17, 2007 9:35

Perso si je dois couper un texte à 250 caractères, si la chaine fait 247 caractères ou plus je coupe à 247 et je rajoute "..." à la fin.
Comme ça pas de soucis de coupure au milieu d'un mot, enfin si mais tout le monde y est habitué avec les "..." à la fin.


NxtGen
WRInaute impliqué
WRInaute impliqué
 
Messages: 762
Inscription: 24 Oct 2006

Message le Jeu Mai 17, 2007 9:58

Voila une petite fonction fait dans le feu de l'action :

Code: Tout sélectionner
// Découpe la chaine en mots
$mots = explode(' ', $chaine);

$taille = 0;
$resume = '';
for ( $i=0; $taille<250; $i++ ) {
   $resume .= $mots[$i].' ';
   $taille = strlen($resume);
   }


je l'ai pas testé mais ca devrait marcher :)


Seraph
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 405
Inscription: 2 Avr 2006

Message le Jeu Mai 17, 2007 10:43

Code: Tout sélectionner
<?php
function cleanCut($text, $size, $link){
   if(strlen($text)>=$size){
      $text = substr($text,0,$size);
      $espace = strrpos($text," ");
      $text = substr($text,0,$espace).'... <a href="'.$link.'" title="lire la suite" >(Suite)</a>';
   }
   return $text;
}
?>


Une qui fonctionne et que j'utilise avec trois parametres :
$text : le texte a couper.
$size : la taille du texte souhaité, exemple 255
$link : le lien vers la page ou tu peux lire le texte en entier

Tu t'en sers simplement en faisant (par exemple):
Code: Tout sélectionner
$text = 'Salut comment tu vas ??';
$size = 7;
$link = 'http://www.example.com/lire.php?id=5';

echo cleanCut($text, $size, $link);


et ca affichera :
Salut... (suite)


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Jeu Mai 17, 2007 10:52

Code: Tout sélectionner
//Tronquer une chaine de caractère trop longue.

$chaine = "Le texte à tronquer";
$lg_max = 123; //nombre de caractères autorisé

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

echo $chaine;
?>


J'ai trouvé ça aussi avec une petite recherche google, les deux fonctionnent à mon avis


NxtGen
WRInaute impliqué
WRInaute impliqué
 
Messages: 762
Inscription: 24 Oct 2006

Message le Jeu Mai 17, 2007 15:38

Yoyos c'est exactement la meme chose que Seraph :)
Et sinon en fait il a dis qu'il voulait couper après le premier espace qui se trouve après le 250ièm caractère...

Il me semble que vos fonctions Seraph et Yoyos coupe avant... Mais c'est surement juste un détail pour lafosca :)


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Google [Bot] et 0 invités