Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 18/04/2011, 17h18   #1
Membre du Club
 
Thibaut LEFEBVRE
Finance
Inscription : octobre 2009
Messages : 123
Détails du profil
Informations personnelles :
Nom : Thibaut LEFEBVRE
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Finance
Secteur : Finance

Informations forums :
Inscription : octobre 2009
Messages : 123
Points : 45
Points : 45
Par défaut expressions régulières en PHP

Bonjour à tous,

Je me galère depuis 14h pour une malheureuse Regex. J'ai une page dans laquelle j'aimerai récupérer des informations. pour cela j'utilise cURL. Jusque là, tout va bien... mais alors je suis perdu quand je tape mon expression régulière.

Voici la partie du html qu'il faut trouver dans la page :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<tr>
 
	<th>
 
	Prénom
 
	</th>
 
	<td>
 
	Thibaut
 
	</td>
 
</tr>
J'aimerai récupérer "Thibaut" par exemple.

j'ai essayé plein de truc :

'#Prénom.*?(.*?)</td>#i'

'/Prénom .*? \n"</th>"\n"<td>"\n(.*?)\n"</td>"i'

'/Prénom\n</th>\n<td>\n(.*?)\n</td>i'

et plein d'autres encore... mais rien...

Après les erreurs unknown modifier & co, je demande de l'aide, pleeeeaaaaaze

je débute dans ces expressions et c'est pas évident... si une âme charitable pouvait me mettre sur la voie....

D'avance merci pour vos réponses,

Thibaut
Souri84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 17h27   #2
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
pour parser du HTML c'est DOMDocument
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/04/2011, 18h52   #3
Membre du Club
 
Thibaut LEFEBVRE
Finance
Inscription : octobre 2009
Messages : 123
Détails du profil
Informations personnelles :
Nom : Thibaut LEFEBVRE
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Finance
Secteur : Finance

Informations forums :
Inscription : octobre 2009
Messages : 123
Points : 45
Points : 45
ok, je vais voir de ce coté alors... même si cela ne répond pas trop à ma question ;-)

Merci

A+
Souri84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 10h48   #4
Membre du Club
 
Thibaut LEFEBVRE
Finance
Inscription : octobre 2009
Messages : 123
Détails du profil
Informations personnelles :
Nom : Thibaut LEFEBVRE
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Finance
Secteur : Finance

Informations forums :
Inscription : octobre 2009
Messages : 123
Points : 45
Points : 45
Bonjour,

Je reviens à la charge : sachant que je n'ai qu'une valeur à récupérer dans le code html, l'expression régulière n'est-elle pas plus appropriée ?

De plus, je regarde DOMDocument là et j'ai l'impression que je ne pourrais pas récupérer les éléments demandés :

il n'y a pas d'id dans mon tableau, juste des balises comme je vous l'ai montré hier et il n'y pas qu'un seul tableau dans le code html. Donc comment être sûr de ne récupérer que la bonne valeur et pas l'ensemble des valeurs comprises comprises dans les <td></td> ?

D'avance merci pour votre réponse,
Souri84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 10h58   #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
DOMDocument est fait pour parser du HTML a partir de la c'est qui est le plus simple a utilisé, c'est comme si tu voulais écrire tu prends un crayon c'est fait pour, rien t’empêche d’écrire avec un cailloux mais c'est moins pratique,
tu dois ensuite faire des requête Xpath pour récupérer ce que tu veux
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 19/04/2011, 11h22   #6
Membre du Club
 
Thibaut LEFEBVRE
Finance
Inscription : octobre 2009
Messages : 123
Détails du profil
Informations personnelles :
Nom : Thibaut LEFEBVRE
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Finance
Secteur : Finance

Informations forums :
Inscription : octobre 2009
Messages : 123
Points : 45
Points : 45
j'ai un souci aussi en utilisant le DOMDocument :

Code :
Fatal error: Call to undefined function loadhtmlfile() in...
Et à priori, en faisant une rapide recherche sur le net, j'ai l'impression qu'on ne peut plus l'utiliser.

Voici mon code au-cas où :

Code :
1
2
3
4
5
6
 
...
$doc = new DOMDocument();
$doc = loadHTMLFile($lien);
$xpath = new DOMXpath($doc);
...
et comme exemple $lien= http://www.nomdedomaine.fr/page.htm

bref, je patauge sévère...
Souri84 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 19/04/2011, 11h24   #7
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
quelle est ta version de PHP ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 11h31   #8
Membre du Club
 
Thibaut LEFEBVRE
Finance
Inscription : octobre 2009
Messages : 123
Détails du profil
Informations personnelles :
Nom : Thibaut LEFEBVRE
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Finance
Secteur : Finance

Informations forums :
Inscription : octobre 2009
Messages : 123
Points : 45
Points : 45
Ma version : Php 5.2.17
Souri84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 11h33   #9
Membre du Club
 
Thibaut LEFEBVRE
Finance
Inscription : octobre 2009
Messages : 123
Détails du profil
Informations personnelles :
Nom : Thibaut LEFEBVRE
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Finance
Secteur : Finance

Informations forums :
Inscription : octobre 2009
Messages : 123
Points : 45
Points : 45
c'est bon, en fait désolé :

c'est pas :

Code :
$doc = loadHTMLFile($lien);
mais

Code :
$doc -> loadHTMLFile($lien);
Souri84 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2011, 12h06   #10
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
@Stealth35
Citation:
pour parser du HTML c'est DOMDocument
Tu devrais le mettre en signature vu le nombre de fois que tu mets ça dans tes posts
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 19/04/2011, 13h29   #11
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
Citation:
Envoyé par Benjamin Delespierre Voir le message
@Stealth35

Tu devrais le mettre en signature vu le nombre de fois que tu mets ça dans tes posts
j'y ai pensé
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 01
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h23.


 
 
 
 
Partenaires

Hébergement Web