Limiteur de texte [Résolu]

Signaler
Messages postés
25
Date d'inscription
jeudi 5 mai 2005
Statut
Membre
Dernière intervention
10 août 2005
-
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
-
Bonjour,



J'aimerais faire un if qui limite le nombre de caractère d'un texte, et
que si celui-ci est dépassé, il affiche par exemple 200 caractères, et
à la fin il met trois petits points (...).

Comme dans "Derniers Blogs" ou "Derniers messages du forum" à gauche.



Mais, impossible de faire ça. J'ai essayé de faire ça avec strlen type :



if (strlen($text) > $max_text) // $max_text contient le nombre maximal de caractère)

{

mais dans le if, je ne sais pas quoi mettre



Merci de votre aide.

9 réponses

Messages postés
78
Date d'inscription
dimanche 22 février 2004
Statut
Membre
Dernière intervention
24 juillet 2005

Pas besoin de condition pour ceci, tu as juste besoin d'utiliser la fonction substr();

exemple :



$text = substr($text, 0, 200); // Recupere les 200 premier caractere de la chaine

echo $text; // Affiche le texte formaté



Mais bon cette methode n'est pas vraiment la meilleur, car le dernier mot peut etre coupé.

Pour recupere les x premier mot, j'ai une petite fonction pour toi :



<?



function recup_mots($text,$nbr_mots)

{

$chaine = explode(" ",$text);

for($i=0; $i<$nbr_mots; $i++)

{

$nouvelle_chaine.=" ".$chaine[$i];

}

return $nouvelle_chaine;

}



$text = "salut ca va ?"; // Chaine à coupée

echo recup_mots($text, 2); // Affiche les 2 premier mots de la chaine, donc "salut ca".



?>

Voila j'espere que ca te servira et que j'ai correctement repondu a ta question.

@+, julien
Messages postés
239
Date d'inscription
jeudi 21 juillet 2005
Statut
Membre
Dernière intervention
1 juillet 2007

Sérieux dès que ta la réponse tu pourras m'envoyer ta source sur mon adresse email :
[mailto:Milkasoprano@wanadoo.fr Milkasoprano@wanadoo.fr] je suis comme toi ! ca pourrait éventuellement minteresser pour mon site portail :)
@ bientot ;)
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Salut,



<?php

if(strlen($chaine)>200)

{

echo substr($chaine,0,197),'...';

}

else

{

echo $chaine;

}
?>
<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
25
Date d'inscription
jeudi 5 mai 2005
Statut
Membre
Dernière intervention
10 août 2005

Merci pour ta fonction wolfcyber.

Elle marche superbement.
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Tu peux remplacer la fonction de wolfcyber par celle-ci :



<?php

$chaine='Essai de chaîne. Nous allons maintenant
faire une fonction permettant de récupérer les x premiers mots';



$tableau=explode(' ',$chaine);



$tableau_final=array_slice($tableau,0,10); //récupère les 10 premiers mots

echo join(' ',$tableau_final);

?>



et voilà :-)



a +

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
78
Date d'inscription
dimanche 22 février 2004
Statut
Membre
Dernière intervention
24 juillet 2005

pas mal ta methode anthomicro ;-)



@+
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
Surtout plus rapide à l'éxécution je pense ;-)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>
Messages postés
78
Date d'inscription
dimanche 22 février 2004
Statut
Membre
Dernière intervention
24 juillet 2005

Ouai merci anthmicro, j'ai regarder ton petit chat, il dechire...bien joué !!
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
8
;-)

<hr size="2" width="100%">




<li>Entraide, dépannage et vulgarisation informatique: Mon site de vulgarisation informatique</li>