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

  FORUM HardWare.fr
  Programmation
  PHP

  ereg... Presque bon... besoin d'aide SVP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

ereg... Presque bon... besoin d'aide SVP

n°1999181
erwan83
Du Shift DEL tu te méfieras !
Posté le 04-06-2010 à 18:03:16  profilanswer
 

soit $rec un tableau de plusieurs mots que je veux comparer à une phrase
 

Code :
  1. for ($i=0;$i<sizeof($rec);$i++)
  2. {
  3. $rc = eregi($rec[$i],$compar2,$tab);
  4. if (($rc==true))
  5.  {
  6.  do tout ce que tu veux
  7.  }......


le problème :
ça me retourne TOUTE phrase contenant n'importe quel mot de mon tableau
 
je voudrais trouver les chaines contenant TOUS les mots de mon tableau...
 
Une idée ?


Message édité par erwan83 le 04-06-2010 à 18:11:34

---------------
http://www.ypikay.com
mood
Publicité
Posté le 04-06-2010 à 18:03:16  profilanswer
 

n°1999192
flo850
moi je
Posté le 04-06-2010 à 18:30:32  profilanswer
 

l'expression regulière n'est pas adaptée

Code :
  1. $fail = false;
  2. $sentence; // ta phrase a tester
  3. $wordArray; //ton tableau de mots
  4. foreach($wordArray as $word)
  5. {
  6.    if(strpos($word,$sentence) === false)
  7.    {
  8.        $fail=true;
  9.        break;
  10.  
  11.    }
  12.  
  13. }
  14. if(!$fail)
  15. {
  16.   //phrase ok
  17. }
 

mais ça c'est inneficace au possible, autant faire le traitement lors de la  requete en base données


Message édité par flo850 le 04-06-2010 à 18:31:03
n°1999195
erwan83
Du Shift DEL tu te méfieras !
Posté le 04-06-2010 à 18:39:09  profilanswer
 

oui ça me parait trop lourd mais je ne bosse pas avec une bdd j'attaque des fichiers texte...
quoique ça vient de me donner une idée
merci !


Message édité par erwan83 le 04-06-2010 à 18:39:45

---------------
http://www.ypikay.com
n°1999199
flo850
moi je
Posté le 04-06-2010 à 19:00:04  profilanswer
 

tu te rens compte qu'a chaque requetes tu fais un nombre impressionnant de strpos ?

 

si tu as n mots recherchés dans m phrases, ça fait n*m comparaison, sachant que le cout de strpos est  grosso modo , fonction de la longueur de la phrase

 

c'est pour ça que les bases de donnée intègrent de indexes, et que les solution de recherches comme lucene stockent directement le lien entre un mot et toutes les donnée sou il appararait


Message édité par flo850 le 04-06-2010 à 19:01:04
n°1999555
rufo
Pas me confondre avec Lycos!
Posté le 07-06-2010 à 13:28:38  profilanswer
 

erwan83, voici un petit outil bien pratique pour aider à mettre au point des regexp : http://gskinner.com/RegExr/
 
C'est pas tout à fait le propos, mais comme c'est un outil bien pratique, ça peut toujours te servir pour autre chose.
 
Pour ton pb, +1 pour passer par une BD.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1999582
stealth35
Posté le 07-06-2010 à 14:41:09  profilanswer
 

on peux mixer les 2, et jouer avec les tableaux

 
Code :
  1. $str         = "Si une chaîne vide est passée comme paramètre source, une alerte sera générée.
  2. Cette alerte n'est pas générée par libxml, et ne peut être gérée
  3. en utilisant les fonctions de gestion d'erreur de libxml.";
  4.  
  5. $search        = array('vide', 'alerte', 'comme');
  6. $sentences     = explode('.', $str);
  7.  
  8. foreach($sentences as $sentence)
  9. {
  10.    $words     = preg_split('/\b/u', $sentence);
  11.     
  12.    if(array_intersect($search, $words) === $search)
  13.    {
  14.        //echo "found all in : $sentence";
  15.    }
  16. }


Message édité par stealth35 le 07-06-2010 à 15:19:20
n°2000290
erwan83
Du Shift DEL tu te méfieras !
Posté le 09-06-2010 à 16:35:25  profilanswer
 

merci !


---------------
http://www.ypikay.com

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

  ereg... Presque bon... besoin d'aide SVP

 

Sujets relatifs
Besoin d'aide en CAide pour un slideshow (flash surement) avec changement background
Débutant aide C++Aide sur un Group by
aide pour socket TCP IP en CAide pour l'installation de VideoCapture
Aide en SDL Basic, please !FREEBOX : perdu localhost après passage en mode routeur
Plus de sujets relatifs à : ereg... Presque bon... besoin d'aide SVP


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