Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/05/2011, 16h30   #1
Candidat au titre de Membre du Club
 
Inscription : mai 2009
Messages : 104
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 104
Points : 12
Points : 12
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 :
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 :
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.
ekiemody est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/05/2011, 17h11   #2
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
regarde les modifieurs m et s :
http://php.net/manual/fr/reference.p....modifiers.php
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 07/05/2011, 17h14   #3
Candidat au titre de Membre du Club
 
Inscription : mai 2009
Messages : 104
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 104
Points : 12
Points : 12
Je les ait regarder mais j'obtient rien jusqu'a maintenant !
Voila ce que j'ai coder en php :
Code :
1
2
 
echo preg_match('#<tr> <td>(.*)</td> <td> <a href=\"/Tennis/Players#ms', $xml, $aTournaments_Played);
ekiemody est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 14h00   #4
Modérateur
 
Avatar de sabotage
 
Homme Vincent
Inscription : juillet 2005
Messages : 14 929
Détails du profil
Informations personnelles :
Nom : Homme Vincent

Informations forums :
Inscription : juillet 2005
Messages : 14 929
Points : 16 381
Points : 16 381
Dans le code HTML que tu nous montres, il y a de multiples espaces, par exemple entre <tr> et <td>.
sabotage est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 14h08   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
si tu veux parser du HTML c'est avec DOMDocument
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2011, 17h16   #6
Membre chevronné
 
Homme
Développeur Web
Inscription : mars 2011
Messages : 399
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Finance

Informations forums :
Inscription : mars 2011
Messages : 399
Points : 662
Points : 662
De toute manière, on ne peut pas parser du HTML ou XML avec des regex
__________________
Membre de StackOverflow, je suis un fervant utilisateur de PHP et de jQuery.
Après des études de graphisme, j'ai décidé de mélanger développement web et web design. J'ai ainsi donc créé mon site web mais aussi plusieurs projets personnels.
Dans les plus aboutis, vous pourrez trouver dans mon labo et dans mon devblog, un raccourcisseur d'url, un bookmarklet pour envoyer l'url de la page actuelle vers votre email pour lire plus tard ou sauvegarder, mon générateur de template HTML5, etc...
Shikiryu est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 09/05/2011, 17h27   #7
Membre régulier
 
Inscription : 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
Points : 82
Points : 82
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 :
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 )
kodeya est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h46.


 
 
 
 
Partenaires

Hébergement Web