Tom's Guide > Forum > Programmation > [résolu][PHP] rechercher une ligne dans un fichier txt

[résolu][PHP] rechercher une ligne dans un fichier txt

Forum Programmation : [résolu][PHP] rechercher une ligne dans un fichier txt

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

Bonjours à tous

Ce que je ve faire est simple mais à codé surement plus compliqué :sarcastic:

J'ai une première page html avec un formulaire dedans

Code :
  1. <form method="post" action="plan4.php">
  2.     <input name="code" type="text" size="6" />
  3.     <input type="submit" value="ok">
  4. </form>



Puis là, vient le problème :D :
Je ve que le fichier php (plan4.php), ouvre un fichier texte (txt) et recherche une ligne.

Exemple :
Si je tape dans le formulaire "LFPO"
Le fichier PHP cherche la ligne qui contient "LFPO"

http://enkeivideo2.power-heberg.com/images/fichier.JPG

Et donc que php m'affiche la ligne "France||Paris|Orly|LFPO"

Donc quel est la suite de ce code...

Code :
  1. <?php
  2. $fichier = fopen("plan/aeroport.txt","r" ))
  3. .
  4. .
  5. .
  6. fclose($fichier);
  7. ?>



Merci d'avence pour vos réponses
:)
Alexandre


Message édité par enkei le 24-02-2009 à 14:37:30
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

C'est bon j'ai trouver mon bonheure ici

http://www.developpez.net/forums/d304382/php/langage/fichiers/parcourir-fichier-txt-recherche-chaine/


Message édité par enkei le 24-02-2009 à 14:37:02
Répondre à enkei

Bonjour,
Pour quelque chose de ce genre, une base de données (comme MySQL) serait tout à fait adaptée. Ca se ferait avec une simple requête du type "SELECT * FROM Aeroports WHERE code=$code;"
http://fr3.php.net/function.mysql-query
Maintenant, si tu n'as pas le choix de la source de données (si c'est juste un fichier texte), il y a toujours moyen de s'arranger.
Tu pourrais par exemple utiliser une expression régulière pour retrouver la ligne:
http://fr3.php.net/preg_match
http://www.regular-expressions.info/php.html
Si tu connais le nombre exact de séparateurs |, tu peux utiliser une expression du type:
"\([^|]*|){4}$code(\r)?(\n)\" (pas sur de la syntaxe: un ensemble de caractères qui ne sont pas des |, suivi d'un |, le tout reproduit 4 fois, suivi du code contenu dans la variable php $code, suivi d'un possible retour chariot, suivi d'un saut de ligne. Assez complexe quand on ne connait pas trop les regexp).
Attention à bien vérifier que ta variable contient un code et pas autre chose!
Tu peux également lire toi même le fichier en entier, puis faire une boucle sur chaque caractère: tu mets dans une variable ces caractères, et quand tu arrives à un \n, tu compares la fin du contenu de ta variable à ton $code.
Pour obtenir le contenu après le dernier |, tu pourrais te servir de la fonction strrchr (cherche la position où apparait pour la dernière fois le caractère donné) et de substr (récupère la partie de la chaine à la position donnée).
http://fr3.php.net/manual/en/function.fread.php
http://fr3.php.net/manual/en/function.strrchr.php
http://fr3.php.net/manual/en/function.substr.php

 

EDIT: ah, j'avais pas vu.


Message édité par Rakipu le 24-02-2009 à 14:49:53
Répondre à Rakipu

Merci quand même d'avoir pris le temps de me repondre ;)

Répondre à enkei
Tom's Guide > Forum > Programmation > [résolu][PHP] rechercher une ligne dans un fichier txt
Aller à :

Il y a 1077 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens