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 :

Récupérer des chaines compliquées [RegEx]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 46
    Points : 41
    Points
    41
    Par défaut Récupérer des chaines compliquées
    Bonjour à tous,

    avant de faire une fonction de fou, je voudrai savoir si les REGEX peuvent m'aider pour ce qui suit :

    J'ai une chaine de caractères qui contient sur une seule ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    blabla%%%%%%%**********
    <a href="/football/FootballFicheMatch3840_2375.html" >5-0        </a>
    blabla%%%%%%%*******
    <a href="/football/FootballFicheMatch67541_5460465.html" >  5-2        </a>
    blabla%%%%%%%*********
    <a href="/football/FootballFicheMatch8295065_8409.html" >3-7        </a>
    blabla%%%%%%%****
    Ce que je dois faire au final, c'est récupérer les scores.

    J'ai mis des % et * pour dire que ça correspond à n'importe quoi, je ne sais pas ce qu'il y a à cette place.

    Au final, vous aurez compris que "/football/FootballFicheMatch" est commun et qu'après il y a des chiffres puis .html

    Voilà, j'espère que j'ai été claire et merci à qui saura m'aider

  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
    Bonjour,

    Tu veux récupérer le texte contenu dans les balises <a /> ?

    Tu peux essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $in = 'blabla%%%%%%%**********<a href="/football/FootballFicheMatch3840_2375.html" >5-0        </a>blabla%%%%%%%*******<a href="/football/FootballFicheMatch67541_5460465.html" >  5-2        </a>blabla%%%%%%%*********<a href="/football/FootballFicheMatch8295065_8409.html" >3-7        </a>blabla%%%%%%%****';
     
    preg_match_all('#<a[^>]+>([^<]+)</a>#', $in, $matches);
     
    var_dump($matches);
    ?>
    Sinon, tu peux jeter un oeil du côté de DOM : http://www.php.net/manual/fr/book.dom.php

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 46
    Points : 41
    Points
    41
    Par défaut
    Bonjour,

    l'idée c'est presque ça, car il y a d'autres liens, mais je dois récupérer ce qu'il y a dans les <a> dont le href commence par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    href="/football/FootballFicheMatch
    et ça normalement, on doit pouvoir écrire cette chaine dans la fonction regex.

    Merci

  4. #4
    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
    Hello,

    Le plus simple est d'utiliser DOM : http://www.php.net/manual/fr/book.dom.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    $in = 'blabla%%%%%%%**********<a href="/football/FootballFicheMatch3840_2375.html" >5-0        </a>blabla%%%%%%%*******<a href="/football/FootballFicheMatch67541_5460465.html" >  5-2        </a>blabla%%%%%%%*********<a href="/football/FootballFicheMatch8295065_8409.html" >3-7        </a>blabla%%%%%%%****';
     
    $doc = new DOMDocument();
    $doc->loadHTML($in);
     
    $xpath = new DOMXpath($doc);
    $entries = $xpath->query('//a[starts-with(@href, "/football/FootballFicheMatch")]');
     
    foreach ($entries as $entry) {
    	echo $entry->nodeValue;
    }
    ?>

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 46
    Points : 41
    Points
    41
    Par défaut
    impec, au final ça fait quand même ce que je veux.

    Merci

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2009
    Messages : 109
    Points : 70
    Points
    70
    Par défaut
    Je me pose une grosse question dans ce cas.

    Au niveau des ressources, c'est mieux quoi, utiliser la REGEX ou bien le DOM ?

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

Discussions similaires

  1. [PowerShell] Récupérer des chaines non MAJUSCULE
    Par gege765 dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 02/01/2013, 09h40
  2. [AppleScript] Récupérer des chaines de caractères à partir d'un choose file
    Par Flore22 dans le forum AppleScript
    Réponses: 3
    Dernier message: 15/04/2010, 09h41
  3. Réponses: 2
    Dernier message: 24/06/2008, 20h58
  4. Réponses: 10
    Dernier message: 11/01/2007, 08h54
  5. Réponses: 1
    Dernier message: 15/12/2006, 20h07

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