IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Recherche et Remplacement d'une chaîne dans un fichier [Fait]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 73
    Points : 54
    Points
    54
    Par défaut Recherche et Remplacement d'une chaîne dans un fichier
    Bonjour.

    Je télécharge un fichier sur le net.
    Dans ce fichier se trouve des infos que je veux récupérer.

    Le problème : les infos se trouvent toutes dans une seule ligne du fichier, extèmement longue.
    Je veux récupérer à chaque fois N fois x infos.
    Une partie de la ligne qui contient x infos :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <tr><td class='bodytxt'><span class='orange'><b>1.</b></span> ATLANTA THRASHERS<br /><span class='orange'><b>2.</b></span> OTTAWA SENATORS</td><td class='bodytxt'><input onclick='javascript:top.SelectBetCompetitor(this)' type='checkbox' name='88191041' value="88191041|Win ATLANTA THRASHERS|NHL Saturday 17/2%3Cbr%20/%3EATLANTA THRASHERS at OTTAWA SENATORS<br />Draw Option|3.40|0"/><a class='pricetxt' href="javascript:void(top.AddBetToSlip(88191041,'Win ATLANTA THRASHERS','NHL Saturday 17/2%3Cbr%20/%3EATLANTA THRASHERS at OTTAWA SENATORS&lt;br /&gt;Draw Option', 3.40, '0'))" style='text-decoration:underline;'>3.40</a></td><td class='bodytxt'><input onclick='javascript:top.SelectBetCompetitor(this)' type='checkbox' name='88191051' value="88191051|ATLANTA THRASHERS v. OTTAWA SENATORS DRAW|NHL Saturday 17/2%3Cbr%20/%3EATLANTA THRASHERS at OTTAWA SENATORS<br />Draw Option|4.35|0"/><a class='pricetxt' href="javascript:void(top.AddBetToSlip(88191051,'ATLANTA THRASHERS v. OTTAWA SENATORS DRAW','NHL Saturday 17/2%3Cbr%20/%3EATLANTA THRASHERS at OTTAWA SENATORS&lt;br /&gt;Draw Option', 4.35, '0'))" style='text-decoration:underline;'>4.35</a></td><td class='bodytxt'><input onclick='javascript:top.SelectBetCompetitor(this)' type='checkbox' name='88191061' value="88191061|Win OTTAWA SENATORS|NHL Saturday 17/2%3Cbr%20/%3EATLANTA THRASHERS at OTTAWA SENATORS<br />Draw Option|1.80|0"/><a class='pricetxt' href="javascript:void(top.AddBetToSlip(88191061,'Win OTTAWA SENATORS','NHL Saturday 17/2%3Cbr%20/%3EATLANTA THRASHERS at OTTAWA SENATORS&lt;br /&gt;Draw Option', 1.80, '0'))" style='text-decoration:underline;'>1.80</a></td></tr>
    Je pourrais utiliser un preg_match si ceci n'était qu'une seule ligne.
    Or je peux avoir 10 fois cela dans une ligne.

    J'ai donc penser remplacer tous les <tr> du fichier récupéré par "\n<tr>".

    Est-ce à votre avis la meilleure méthode ?

    En effet, cela signifie que je dois passer toutes les lignes de mon fichier une première fois pour remplacer et une seconde fois pour rechercher mon pattern.
    Y a t-il une fonction qui permet de remplacer toutes les occurences d'une chaîne dans un fichier sans passer ligne par ligne (je sais ma question est idiote) ?

    Ne vaudrait-il pas mieux ?
    1) Rechercher le pattern
    2) Copier la ligne dans un fichier
    3) Remplacer <tr> dans ce fichier
    4) Rechercher le pattern dans chaque ligne de ce nouveau fichier

    Désolé si mes explications sont confuses.

  2. #2
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Et pourquoi pas utiliser preg_replace ?

    Jette un oeil sur ceci : preg_replace() ou preg_replace_callback()

  3. #3
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    Pourquoi pas preg_match_all() tout simplement ?

  4. #4
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    J'y ai pensé mais il dit qu'il souhaite remplacer les éléments et c'est preg_replace qui correspond le plus à sa demande. Mais il peut quand même le faire avec preg_match_all, et le traitement sera certainement plus long

  5. #5
    Membre confirmé Avatar de goodpz
    Profil pro
    Inscrit en
    Février 2007
    Messages
    475
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 475
    Points : 514
    Points
    514
    Par défaut
    Citation Envoyé par Kerod
    J'y ai pensé mais il dit qu'il souhaite remplacer les éléments et c'est preg_replace qui correspond le plus à sa demande. Mais il peut quand même le faire avec preg_match_all, et le traitement sera certainement plus long
    Au début de son message, jpascal dit qu'il souhaite récupérer des info dans la chaîne. Remplacer des occurrences n'est qu'une solution de secour (apparemment)

  6. #6
    Inactif  
    Avatar de Kerod
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    11 672
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 11 672
    Points : 20 778
    Points
    20 778
    Par défaut
    Si tu te bases sur le titre du sujet et le fonctionnement voulu tu remarqueras que c'est exactement ce qu'il souhaite avoir. La solution de récupération du début est là certainement parce qu'il ne savait pas qu'il existait un fonction qui permettait de remplacer directement.

Discussions similaires

  1. Une fonction recherchant l'occurrence d'une chaîne dans un fichier texte
    Par l_autodidacte dans le forum Vos Contributions VBScript
    Réponses: 5
    Dernier message: 11/05/2012, 15h30
  2. Remplacer une chaîne dans un fichier
    Par Christophe Genolini dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 20/08/2008, 21h03
  3. remplacer une chaîne dans un fichier
    Par PH_DEMS dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/06/2008, 21h49
  4. Recherche une chaîne dans un fichier
    Par |DuFF| dans le forum Windows
    Réponses: 5
    Dernier message: 24/01/2008, 18h11
  5. Remplacer une chaîne dans un fichier txt
    Par java_fun dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 11/06/2007, 20h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo