Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2712 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  N'afficher qu'un nombre limité de mots...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

N'afficher qu'un nombre limité de mots...

n°1039217
foxcssfox
The design of CSS...
Posté le 07-04-2005 à 17:57:53  profilanswer
 

bonjour,
 
je suis confronté à la problématique suivante :
 
j'ai une page avec un edito (modifiable dynamiquement via un formulaire DANS un fichier txt).
j'aimerai que dans la page d'accueil, n'apparaissent ques les 100 premiers (mots par
exemple) de l'edito.
 
Pouvez vous me donner des pistes ?
quelles fonctions utilisées ?
 
merci
Francois

mood
Publicité
Posté le 07-04-2005 à 17:57:53  profilanswer
 

n°1039475
T509
$job->GetJob(now)
Posté le 07-04-2005 à 22:44:22  profilanswer
 

Tu comptes les espaces. Au 100eme espace, tu y es arrivé.
 
http://fr2.php.net/manual/fr/ref.strings.php tout est là

n°1039795
foxcssfox
The design of CSS...
Posté le 08-04-2005 à 10:52:13  profilanswer
 

Effectivement y a tout, mais j'ai pas trouvé de fonction pour les espaces à part trim...
 
mais, en cherchant un peu, j'ai trouvé cela sur phpinfo.net pour ceux que ça interesse.
 
Une petite fonction simple mais fort pratique, pour afficher un résumé de 20 mots par exemple :

Code :
  1. <?
  2. function resume_xmots($MaChaine,$xmots) 
  3.    $ChaineTab=explode(" ",$MaChaine); 
  4.    for($i=0;$i<$xmots;$i++) 
  5.    { 
  6.       $NouvelleChaine.=" "."$ChaineTab[$i]"; 
  7.    }
  8.    return $NouvelleChaine; 
  9. }
  10. ?>


 
 

Code :
  1. <?
  2. echo resume_xmots($MaChaine,20) ;
  3. ?>


 
Je vais essayé ça..


Message édité par foxcssfox le 08-04-2005 à 10:55:56
n°1039840
Snoopy71
Posté le 08-04-2005 à 11:34:27  profilanswer
 

Pas mieux :)
 
A part que tu pourrais l'améliorer un peu en faisant un trim sur ton retour ( pour enlever l'espace de début), et un count de ton tableau que tu compares à ton $xmots afin de rajouter "..." si ton tableau est plus grand que le nombre de mots désirés.... et puis vérifier que le nombre de mots demandé est plus PETIT que le nombre de mots du tableau ;)
 
@+

n°1040212
naceroth
Posté le 08-04-2005 à 15:12:51  profilanswer
 

Disons que le problème de ce système, c'est des cas comme

Citation :


Bonjour ! Comment allez-vous aujourd'hui ? Moi, ça va !


 
Y a une petite erreur entre le nombre de mots véritables et le retour (les signes ? et ! sont pris pour des mots, allez-vous n'en fait qu'un) bref, c'est simple à défaut d'être efficace :)


Message édité par naceroth le 08-04-2005 à 15:13:02
n°1285928
johaaanns
Posté le 17-01-2006 à 20:07:25  profilanswer
 

bonjour,
 
J'ai un soucis car j'utilise ce code mais sous easy php 1.8 il y a cette erreur :
Notice: Undefined variable: NouvelleChaine in c:\program files\easyphp1-8\www\mastermind_janvier2006\all_news_messages_pub.php on line 72
 
comment reparer !!!
Merci

n°1285942
johaaanns
Posté le 17-01-2006 à 20:23:52  profilanswer
 

up

n°1285971
ritzle
Posté le 17-01-2006 à 21:01:08  profilanswer
 

avant la boucle for, tu ajoutes la ligne
$NouvelleChaine = "";

n°1285997
afbilou
pouet your life
Posté le 17-01-2006 à 21:28:27  profilanswer
 

utiliser preg_match avec le pattern de recherche suivant : #(?:\w+\W+){n-1}\w+#s
en modifiant n-1 par la valeur qui te convient : 99 si tu veux 100 mots.
 
Si la fonction preg_match renvoie FALSE ... ce la veut dire que ton texte comporte moins de n mots ... tu pourras donc l'afficher entier.
 

Code :
  1. if (preg_match('#(?:\w+\W+){99}\w+#s' , $texte , $out)
  2. {
  3. echo $out[0];
  4. }
  5. else
  6. {
  7. echo $texte;
  8. }

n°1286016
Dj YeLL
$question = $to_be || !$to_be;
Posté le 17-01-2006 à 21:39:53  profilanswer
 

euh, pourquoi pas tout simplement un substr ?
 
Bon, ça matche pas le nombre de mot, mais de toute façon il est plus logique de délimiter en fonction d'un nombre de caractères plutôt qu'un nombre de mot...
 
Par exemple :

Code :
  1. $resume =  substr($montext,0,300) // pour les 300 premiers caractères
  2. $resumt .= '... <a href="blabla">Lire la suite</a>';


 
Je trouve ça plus simple et plus logique non ?


---------------
Gamertag: CoteBlack YeLL
mood
Publicité
Posté le 17-01-2006 à 21:39:53  profilanswer
 

n°1286019
johaaanns
Posté le 17-01-2006 à 21:40:51  profilanswer
 

en tout cas merci de votre reponse
:)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  N'afficher qu'un nombre limité de mots...

 

Sujets relatifs
JSTL - afficher html dans une variableCalculer le nombre de pages sous Word
Afficher un arbre venant d'une BD[Java] Afficher un fichier texte
nombre d'occurences dans une table[mots-clés] Robots et logs [Résolu]
Afficher des données en 2 collones via un tableau[Unix] Nombre de colonnes d'un terminal
afficher une image sous gtkAfficher ou non des DIV suivant le style css sélectionné
Plus de sujets relatifs à : N'afficher qu'un nombre limité de mots...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR