Chercher une chaine dans un tableau PHP - PHP - Programmation
Marsh Posté le 10-06-2004 à 16:52:44
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
Marsh Posté le 10-06-2004 à 17:05:01
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
Marsh Posté le 10-06-2004 à 17:32:27
la fonction array_keys() me semble pas mal pour ce genre d'utilisation.
Marsh Posté le 10-06-2004 à 17:43:59
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 : |
avec ton script, si la ligne est plus longue que 1024 octets, elle sera tronquée dans ton résultat
Marsh Posté le 10-06-2004 à 18:02:03
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 ?
Marsh Posté le 10-06-2004 à 18:22:51
We bah avec array_keys ca donne:
Code :
|
C court !
Marsh Posté le 10-06-2004 à 16:42:52
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 :
2eme :
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