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

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Nombre d'occurences d'un mot dans une chaine de caractères

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Nombre d'occurences d'un mot dans une chaine de caractères

n°239139
Furaxx
Posté le 04-11-2002 à 11:43:44  profilanswer
 

J'ai un site avec une page de news, et la possibilité de poster des commentaires avec des smileys. Mais comme toujours, des petits malins s'amusent à poster un message avec par exemple 200 smileys identiques dans leur message.  
 
Mes smileys sot enregistrés dans un répertoire "images/smileys"  
 
Je voudrais donc, pour éviter ça, compter le nombre de "images/smileys" dans le message poster, et s'il dépasse par exemple 20, ne pas enregistrer le commentaire.  
 
 
Si d'autres façon plus simples existent, je suis aussi preneur. ;)

mood
Publicité
Posté le 04-11-2002 à 11:43:44  profilanswer
 

n°239144
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 04-11-2002 à 11:48:19  profilanswer
 

'tain, y a eu plein de posts traitant de ce sujet. Y en a même un sur cette page : http://forum.hardware.fr/forum2.ph [...] subcat=393


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°239200
Furaxx
Posté le 04-11-2002 à 14:10:43  profilanswer
 

Le post que tu donnes sert à compter simplement le nombre du mot d'une chaine de caractères.
Moi ce que je veux, c'est savoir par exemple combien de fois il y a le mot "truc" dans une chaine.

n°239209
barbarella
Posté le 04-11-2002 à 14:26:43  profilanswer
 

salut,
 
s'il s'agit de cherche les itérations d'une liste de mots dans une chaine de carac, et non un seul mot, alors le prob est assez délicat et il doit exister de nombreuses méthodes d'attaques plus ou moins efficaces en fonction du langage utilisé.
 
une approche que je serais tenté de te proposer c'est de décomposer ta chaine en une liste de mots. charge a toi de trouver les séparateurs qui déterminent s'il s'agit d'un nouveau mot). De trier cela avec un algo Qsort. Puis de comparer la liste de mots trier a rechercher avec la liste de mots générée et trier.  
 
La complexité de l'algo ne devrait pas être sup a n*ln(n) a priori evidement ;)

n°239210
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 04-11-2002 à 14:26:50  profilanswer
 

...
explode() retourne un tableau. Et pour savoir combien y a d'éléments, ba t'as la fonction count().
Exemple :

Code :
  1. $chaine = "Ceci est un exemple";
  2. $tableau = explode("e", $chaine);
  3. $occurences = count($tableau);
  4. echo "Il y a $occurences fois la lettre e dans cette chaine.";


 
Ch'ais pas, c'est quand même pas compliqué de remplacer " " par "truc" dans explode().
 
Edit : barbarella : nan, il cherche juste à savoir combien de fois il y a la chaine "images/smileys" dans une chaine. Pas de quoi se prendre la tête avec des Qsort et des logarithmes népériens... :sarcastic:


Message édité par Taiche le 04-11-2002 à 14:28:53

---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°239213
omega2
Posté le 04-11-2002 à 14:31:09  profilanswer
 

Ben ta fonction qui remplace les caractères par les smilies, si elle utilise les regexp, utilise donc "preg_replace($regexp,$remplace,$texte[,$limit])" à la place de str_replace.
Chaque  
Si $limit est un integer, la valeur de $limit indique le nombre max de remplacement pour chaque $regexp.
Si $limit est un tableau d'integer, alors chaque valeur de $limit indiquera le nombre max de remplacement de la valeur du tableau $regexp corespondant.
 
Sinon, utilise des boucles en sortant de la boucle au bout de n smilies trouvé.
 
Comme ça, le message posté n'est pas perdus. ;)

n°239235
Furaxx
Posté le 04-11-2002 à 15:20:20  profilanswer
 

Taiche> OK, merci, j'avais carrément pas pensé à ça... prochaine fois je chercherai d'abord une solution "con" :p
 
barbarella> j'vais prendre la solution de Taiche, ta solution est bien aussi, mais en fait, si le mec poste un message avec plus de 20 smileys ben... faut le faire quoi, et donc, je veux qu'il soit perdu justement pour décourager les emm...erdeurs :D


Message édité par Furaxx le 04-11-2002 à 15:21:32
n°239390
sielfried
Posté le 04-11-2002 à 18:55:46  profilanswer
 

Le truc de Taiche n'est pas tout à fait exact il me semble : le nombre d'occurences de "e", en reprenant son exemple, serait $occurences - 1 et non $occurences. Puisque dans une chaîne comme "Ceci est un exemple", explode sépare en "C", "ci ", "st un ", "x", "mpl" et "", ce qui fait 7 cases de tableau.


Message édité par sielfried le 04-11-2002 à 18:56:00

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°239393
Furaxx
Posté le 04-11-2002 à 19:01:36  profilanswer
 

Oui, j'ai pensé à ce truc là, mais ça dépend si le commentaire commence par un smiley et finit avec un...
 
Bon, de toute façon, je ne suis pas à 1 ou 2 près, du moment que j'évite les 200 :D
 
Merci :)

n°239397
sielfried
Posté le 04-11-2002 à 19:08:28  profilanswer
 

Furaxx a écrit a écrit :

Oui, j'ai pensé à ce truc là, mais ça dépend si le commentaire commence par un smiley et finit avec un...




 
Ben quelle que soit la chaîne, ce sera $occurences - 1 il me semble, que ça se finisse ou non par le smiley (ou le "e" dans l'exemple) ^^


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar

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

  [PHP] Nombre d'occurences d'un mot dans une chaine de caractères

 

Sujets relatifs
[JAVA] obtenir la précision voulue pour un nombre....[PHP]Installation PHP Nuke chez Free config.php lumieres plz :)
[PHP] afficher dans 2 colonneBesoin d'aide pour mon bout de code PHP
[PHP] utiliser une fonction php dans le champ action d'une forme[C/C++] Générer un nombre aléatoire
Comment resizer une photo en PHP ?[PHP]{newbie neuneu} bricoler une table
[PHP] A propos de la librairie GDYahoo! adopte le langage de script PHP
Plus de sujets relatifs à : [PHP] Nombre d'occurences d'un mot dans une chaine de caractères


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