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

  FORUM HardWare.fr
  Programmation
  PHP

  Chercher une chaine dans un tableau PHP

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Chercher une chaine dans un tableau PHP

n°759443
joelan
Posté le 10-06-2004 à 16:42:52  profilanswer
 

Voici deux méthodes fraichement codées.  
On retourne la ligne d'un fichier texte qui contient notre chaine.
 
Laquelle demande le moins de mémoire pour s'éxecuter ? Ya t'il de meilleures méthodes ?
 
1ere :

Code :
  1. $i = 0;
  2. while(!feof($fp))
  3. {
  4. $lignes[i] = fgets($fp, 1024);
  5. if( ($res = stristr($lignes[i], $mot_cherche)) !=FALSE )
  6. return lignes[i];
  7. i++;
  8. }
  9. fclose($fp);


 
2eme :
 

Code :
  1. while(!feof($fp))
  2. {
  3. $lignes[] = fgets($fp, 1024);
  4. }
  5. fclose($fp);
  6. $i= 0;
  7. while( $i < count($lignes) )
  8. {
  9. if( ($res = stristr($lignes[i], $mot_cherche)) !=FALSE )
  10. return lignes[i];
  11. i++;
  12. }


 
Ca sera utilisé comme moteur de recherche. On peut peut etre l'améliorer avec des tables de hachages ou bien un autre algo de recherche.
Je sais pas trop comment m'y prendre  :(  
 
Thx


Message édité par joelan le 10-06-2004 à 16:46:28
mood
Publicité
Posté le 10-06-2004 à 16:42:52  profilanswer
 

n°759459
dropsy
et bonne chance surtout...
Posté le 10-06-2004 à 16:52:44  profilanswer
 

pourquoi ne pas faire:
if( stristr($lignes[i], $mot_cherche) !== FALSE )  
 
plutôt?
 
et là tu retournes pas vraiment une ligne du fichier mais plutôt un bloc de 1024, mais c'est peut-être ce que tu cherhes [:proy]


Message édité par dropsy le 10-06-2004 à 16:53:06
n°759493
joelan
Posté le 10-06-2004 à 17:05:01  profilanswer
 

bah si j 'ai bien lu la doc PHP, stristr retourne une sous chaine de  $lignes[i].  
 
Moi j ai besoin de la ligne qui contient toutes les informations qu il me faut. Il faut que la recherche soit rapide et ne demande pas trop de ressources.
 
En fait ma question porte plutot sur l 'efficacité de ces algos. Ou bien d 'autres si quelqu'un a mieux a proposer

n°759537
T509
$job-&gt;GetJob(now)
Posté le 10-06-2004 à 17:32:27  profilanswer
 

la fonction array_keys() me semble pas mal pour ce genre d'utilisation.


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
n°759556
dropsy
et bonne chance surtout...
Posté le 10-06-2004 à 17:43:59  profilanswer
 

joelan a écrit :

bah si j 'ai bien lu la doc PHP, stristr retourne une sous chaine de  $lignes[i].  


rejette donc un petit coup d'oeil à la doc ;)
http://fr.php.net/manual/fr/function.stristr.php
le fonctionne retourne FALSE quand elle ne trouve pas la chaine de caractère
 
de plus j'ai aussi retiré l'affectation à la variable $res que tu n'as pas l'air d'utiliser après.
 

joelan a écrit :


Moi j ai besoin de la ligne qui contient toutes les informations qu il me faut. Il faut que la recherche soit rapide et ne demande pas trop de ressources.


avec ton script, si la ligne est plus longue que 1024 octets, elle sera tronquée dans ton résultat

n°759577
joelan
Posté le 10-06-2004 à 18:02:03  profilanswer
 

Bah c kler j ai pas donné la structure sur laquelle je travaillais.  
Ca sera un fichier texte :
 
champs11 champs12 ... champs1N  << 1024
.
.
champsN1.............. champs NN
 
il y aura pas plus de 100 000 lignes
 

Citation :

array_keys()

 
 
we j'imagine que l'algo est top, j ve tenter de coder çà
 
Au niveau de l'occupation mémoire, de la fiabilité ya des suggestions ?


Message édité par joelan le 10-06-2004 à 18:05:15
n°759593
joelan
Posté le 10-06-2004 à 18:22:51  profilanswer
 

We bah avec array_keys ca donne:
 

Code :
  1. while(!feof($fp))
  2. {
  3. $lignes[] = fgets($fp, 1024);
  4. }
  5. fclose($fp);
  6. $array = array_keys($lignes, $mot_cherche);


 
C court ! :lol:


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

  Chercher une chaine dans un tableau PHP

 

Sujets relatifs
[PHP] Type mime différent selon les navigateur ?[php afficher une ]variable
[php-flash]repertoire de serveurMaj de mon code PHP !!
[PHP-GD ] Creation d'image a partir de petites image[php] première page de site
php et tomcat[PHP] Stocker plusieurs valeurs en une seule et les récupérer
Requete HTTP, Lire le flot d'une page HTML dans un script phpSite en PHP : dédier une frame pour le Flash...
Plus de sujets relatifs à : Chercher une chaine dans un tableau PHP


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