Page 1 sur 1

Récupération de contenu sur un site externe

Posté : 15 mars 2011, 18:08
par vincef62
Bonjour à tous,

J'essaie de récupérer du contenu qui se trouve sur un site externe.

J'utilise une fonction curl pour récupérer le contenu entre 2 balises précises.

Voici mon code :

Code : Tout sélectionner

$curl = curl_init("http://www.exemple.com/page.html"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_HEADER, false); $page = curl_exec($curl); $error = curl_errno($curl); curl_close($curl); preg_match('`<div id="text">(.*?)</div>`Uis', $page, $match); echo $match[0];
Le problème est que cette fonction me renvoie tout ce qui se trouve entre les balises dès la première qu'il trouve.
Or, comment faire pour récupérer la deuxième balise qu'il rencontrerait ?

Ex :
J'ai ces balises :

Code : Tout sélectionner

<div id="text">Mon texte 1</div> <div id="text">Mon texte 2</div> <div id="text">Mon texte 3</div>
J'aimerai pouvoir récupérer "Mon texte 2".

Comment faire ?

Merci !

Re: Récupération de contenu sur un site externe

Posté : 15 mars 2011, 19:27
par moogli
[url=http://www.preg_match_all]preg_match_all[/url]

@+

Re: Récupération de contenu sur un site externe

Posté : 17 mars 2011, 11:49
par stealth35
[url=http://www.preg_match_all]preg_match_all[/url]

@+
nop DOMDocument :wink:

Re: Récupération de contenu sur un site externe

Posté : 17 mars 2011, 18:58
par AB
Ex :
J'ai ces balises :

Code : Tout sélectionner

<div id="text">Mon texte 1</div> <div id="text">Mon texte 2</div> <div id="text">Mon texte 3</div>
Tu es certain ? parce que normalement un id se doit d'être unique. Si ton html est non valide la récupération sera moins facile.

Re: Récupération de contenu sur un site externe

Posté : 22 mars 2011, 19:13
par Sesquitertia
Le plus sur, après avoir mis les identifiants uniques c'est de commenter les balises de fermetures:

Code : Tout sélectionner

<div id="text1">Mon texte 1</div><!-- fin #text1 --> <div id="text2">Mon texte 2</div><!-- fin #text2 --> <div id="text3">Mon texte 3</div><!-- fin #text3 -->
Et pour la fonction:

Code : Tout sélectionner

$curl = curl_init("http://www.exemple.com/page.html"); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true); curl_setopt($curl, CURLOPT_HEADER, false); $page = curl_exec($curl); $error = curl_errno($curl); curl_close($curl); preg_match('`<div id="text2">(.*?)</div><!-- fin #text2 -->`Uis', $page, $match); echo $match[0];