Se connecter avec
S'enregistrer | Connectez-vous

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

Dernière réponse : dans Programmation

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
  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"



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

Donc quel est la suite de ce 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
Lassé par la pub ? Créez un compte
Expert Programmation

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.
Lassé par la pub ? Créez un compte
Tom's guide dans le monde