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 :

saut à la ligne dans un preg_match


Sujet :

Langage PHP

  1. #1
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    j'ai un problème j'aimerais recupérer des données dans un code html, mais dès qu'il y a un saut à la ligne ça ne marche plus.

    le code html :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <td>Tournaments Played</td> 
                        </tr> 
     
                                <tr> 
                                    <td>101</td> 
     
     
                                         <td><a href="/Tennis/Players/Top-Players/Paul-Henri-Mathieu.aspx">Mathieu,&nbsp;Paul-Henri</a>&nbsp;(FRA)</td>
    En effet, je voudrais recuperer la valeur 101 contenu dans : <td>101</td>
    Mon code php est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php
    $xml = ('<td>Tournaments Played</td> 
                        </tr> 
                        
                                <tr> 
                                    <td>101</td> 
                                    
    
                                         <td><a href="/Tennis/Players/Top-Players/Paul-Henri-Mathieu.aspx">Mathieu,&nbsp;Paul-Henri</a>&nbsp;(FRA)</td>');
    preg_match_all('#<tr><td>(.*)</td><td><a href=\"/Tennis/Players#', $xml, $aTournaments_Played);
    echo $aTournaments_Played[1];
    ?>
    ca ne renvoit rien à cause du saut à la ligne, quelqu'un sait-il comment faire ?
    Merci

    Je voulais savoir dans le cas échéant, est que je ne peux pas passer par une autre méthode, c'est a dire que, avec une expression régulière, si j'arrive a supprimer tous les espaces (en trop) et les retours a la ligne dans le code HTML (précédemment fourni).
    Je crois que par la suite alors je pourrais utiliser normalement preg_macth pour trouver et extraire les caractères qui m'interesent.
    Reste maintenant a savoir comment faire ça !
    Quelqu'un n'aurais pas un exemple de code a me fournir qui supprimerai tout les espaces (en trop et les retour a la ligne du code html de la variable $xml)!
    Merci.
    Dernière modification par sabotage ; 07/05/2011 à 17h09. Motif: Merci d'utiliser la fonction Edition

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Invité
    Invité(e)
    Par défaut
    Je les ait regarder mais j'obtient rien jusqu'a maintenant !
    Voila ce que j'ai coder en php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo preg_match('#<tr> <td>(.*)</td> <td> <a href=\"/Tennis/Players#ms', $xml, $aTournaments_Played);

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Dans le code HTML que tu nous montres, il y a de multiples espaces, par exemple entre <tr> et <td>.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    si tu veux parser du HTML c'est avec DOMDocument

  6. #6
    Membre émérite

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    411
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 411

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 62
    Par défaut
    Je travaille beaucoup avec des crawlers quand il faut récuperer les données des pages html. Franchement, c'est galère. Surtout quand le html est mal formé. Pour ignorer les sauts des lignes et les espaces entre les balises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    preg_match_all('#<tr>[^<]*<td>(.*)</td>[^<]*<td>[^<]*<a href=\"/Tennis/Players#s', $xml, $aTournaments_Played);
    [^<]* - permet d'éviter des sauts de ligne entre les balise: '<tr>[^<]*<td>' . à utiliser avec l'option 's' ( #regexp#s )

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/05/2005, 09h35
  2. Mettre une saut de ligne dans une balise alt
    Par PrinceMaster77 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 16/12/2004, 08h45
  3. Réponses: 2
    Dernier message: 03/12/2004, 09h27
  4. Export vers Excel et saut de ligne dans cellule
    Par sbeu dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h53
  5. Nombre de sauts de ligne dans un String
    Par Johnbob dans le forum ASP
    Réponses: 7
    Dernier message: 03/03/2004, 15h33

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