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 :

Extraction d'une chaine [RegEx]


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Extraction d'une chaine
    Bonjour,

    J'aurais besoin de votre aide pour extraire une chaîne de caractère d'une page HTML sous la forme :

    METAR LS... (reste des infos) ... =

    La page se présente sous la forme suivante :

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <!-- Main Content -->
     
    <!-- Main Content -->
    <div id="content_wide">
    	<a name="main_content"></a><!--content 1181300985892-->
    <div id="content">
     
    <!-- product 1181300985896-->
    <!--content 1181300985904-->
    <div id="content">
     
    <!-- text 1181300985908-->
    <h3 class="text"><b>133</b></h3><p class="text" style="color:#8B8B8B;">Actualis&eacute;e le 08.06.2007, 12.00  </p><div class="text">133<br />
    VQLA02 LSSW 080958<br />
    MeteoSchweiz / MeteoSuisse / MeteoSvizzera / MeteoSwiss<br />
    <br />
    METAR     LSZH 080920Z 22006KT 170V260 9999 FEW018 BKN025 21/16<br />
    Q1017 NOSIG=<br />
    METAR     LSZH 080950Z 24006KT 9999 FEW018 BKN028 22/16 Q1017 NOSIG=<br />
     
    METAR     LSGG 080920Z VRB03KT 9999 FEW030TCU SCT120 22/15 Q1018<br />
    NOSIG=<br />
    METAR     LSGG 080950Z VRB02KT 9999 VCSH FEW020 FEW030TCU SCT120<br />
    23/15 Q1018 NOSIG=<br />
    METAR     LFSB 080930Z 29006KT 220V340 9999 SCT020 FEW025TCU 23/18<br />
    Q1016 NOSIG=<br />
    METAR     LSZB 080920Z VRB03KT 9999 FEW020 BKN120 21/16 Q1017 NOSIG=<br />
    METAR     LSZB 080950Z 28004KT 230V340 9999 SCT030 21/15 Q1018<br />
    NOSIG=<br />
     
    METAR     LSZA 080920Z 19004KT 9999 FEW040 SCT100 22/15 Q1017 NOSIG=<br />
    METAR     LSZA 080950Z 18005KT 9999 FEW040 SCT100 23/16 Q1017 NOSIG=<br />
    METAR     LSZG 080920Z 22005KT 180V260 9999 FEW010 BKN018 19/16<br />
    Q1018 NOSIG=<br />

    Il me faudrait pouvoir extraire ces infos lignes par lignes mais seulement depuis METAR LS jusqu'au = (il existe d'autres METAR dans la page web) puis ensuite pouvoir afficher chacune de ces infos sur une ligne.

    Merci pour votre aide.

  2. #2
    Membre émérite
    Avatar de Nesmontou
    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Septembre 2004
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 612
    Points : 2 969
    Points
    2 969
    Par défaut
    Salut, tu peux essayer ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $content = '...'; // Ton texte à analyser
    preg_match_all('`METAR LS(.+)=`smU', $content, $matches);
    foreach ($matches[1] as $line) {
    	echo preg_replace('`<br.*>`smU', '', $line) . "\n";
    }
    ?>
    Bon développement
    Si vous ne pouvez expliquer un concept à un enfant de six ans, c'est que vous ne le comprenez pas complètement. Albert EINSTEIN

    F.A.Q. : Java, PHP, (X)HTML / CSS

    N'oubliez pas de cliquer sur le bouton Résolu en bas de page quand vous avez obtenu une solution à votre problème

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Hello,
    Merci pour l'aide, malheureusement, j'y arrive pas. Voilà à quoi ressemble mon script, si qqn peut m'aider, merci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?php
     
    //Ouverture du fichier
    $line="";
    $filename = "metar.html";
    $filehandle=fopen($filename,'r');
     
    while(!feof($filehandle))
    {
    $line.=fgets($filehandle,500); // Max 500 chars
     
    }
     
    $motif='`METAR LS(.+)=`smU';
    //$motif='METAR';
    preg_match_all($motif,$line,$matches);
     
    foreach ($matches[1] as $line) {
    	echo preg_replace('`<br.*>`smU', '', $line) . "\n";
    	}
    ?>
    Merci

  4. #4
    Membre éclairé Avatar de Korko Fain
    Profil pro
    Étudiant
    Inscrit en
    Août 2005
    Messages
    632
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2005
    Messages : 632
    Points : 718
    Points
    718
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $motif='`METAR\s+LS([^=]+?)=`m';
    //$motif='METAR';
    preg_match_all($motif,$line,$matches);
     
    foreach ($matches[1] as $line) {
    	echo strip_tags($line) . "\n";
    	}

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    Merci Korko Fain, ca marche parfaitement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL Server 2000] Extraction dans une chaine de caracteres
    Par KOFJCH dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/10/2006, 09h28
  2. Extraction d'une chaine à partir d'une photo
    Par Julaie95 dans le forum Traitement d'images
    Réponses: 31
    Dernier message: 23/05/2006, 15h44
  3. Extraction d'une chaine avec séparateurs
    Par kaceo dans le forum Requêtes
    Réponses: 1
    Dernier message: 05/05/2006, 10h36
  4. extraction d'une chaine de caractere ...
    Par nicolasghaz dans le forum VBScript
    Réponses: 7
    Dernier message: 31/10/2005, 18h53
  5. Extraction d'une chaine de caractères
    Par megane dans le forum Langage
    Réponses: 2
    Dernier message: 05/01/2004, 14h52

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