Jump to content
Sign in to follow this  
ctpctp

Récuperer qu'une partie d'une page avec CURL

Recommended Posts

Bonjour à tous,

J'ai trouvé pas mal de tuto sur le net pour récupérer le contenu d'une page PHP par CURL sur le net mais aucun ne précise comment ne récupérer qu'une partie d'une page.

J'aimerais donc savoir comment, par exemple, ne recupérer que le texte contenu dans une div situé dans <body> par exemple en faisant abstraction de tout le reste.

Merci de votre aide

Share this post


Link to post
Share on other sites

Tu récupère la page complètement avec curl, puis sur le résultat tu utilises une expression régulière

Share this post


Link to post
Share on other sites

Salut,

Pour être précis, tu ne récupérera que le contenu HTML de ta page. Ensuite tu peux utiliser les fonctions PHP de recherche sur les chaines de caractères pour retrouver tes petits et isoler la partie qui t'intéresse.

Share this post


Link to post
Share on other sites

Ok donc pas de récupération partielle!

Je vais donc devoir insérer les données dans une bdd puis les traiter ensuite pour extraire ce que je veux.

J'utilise donc pour afficher le contenu :

if (!extension_loaded('curl')) {
die("L'extension CURL n'est pas disponible");
}

function fetch($url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, FALSE);
$response = curl_exec($ch);
curl_close($ch);
return $response;
}

echo fetch('http://www.monurl.com');

Pour l'insertion, je n'arrive pas à insérer mon contenu :

 $r="INSERT INTO html_content (champ1,html) VALUES(1,' $response ')";
return mysql_query($r);

J'ai bien une entrée mais la partie 'html' est vide.

Auriez-vous une idée SVP?

Share this post


Link to post
Share on other sites

Pourquoi insérer dans la base avent d'extraire les infos que tu veux??

Share this post


Link to post
Share on other sites

Je trouvais ca plus simple d'inserer les données et de les traiter après.

Share this post


Link to post
Share on other sites

Pourquoi s'embêter avec curl ?

La fonction file de PHP est très bien pour ça.

http://fr2.php.net/file

<?php

//Récupération d'un tableau contenant chaque ligne
$lines = file('http://www.tonsite.com/url.html');

$dansLeDiv=0;
$contenuDiv='';

//Parcours du tableau
foreach ($lines as $line) {

//Si on est dans le div
if($dansLeDiv==1) {
$contenuDiv.=$line;
}

//Si on est dans le div et qu'on rencontre une balise fermante
if($dansLeDiv==1 && eregi('</div>',$line) $dansLeDiv=0;

//Si on rencontre un div avec l'id toto
if(eregi('id="toto"',$line) $dansLeDiv=1;

}

?>

Voici un exemple que je n'ai pas testé mais qui doit te mettre tout le contenu du div avec id="toto" dans la variable $contenuDiv. Attention il ne faut pas de div imbriqué dans l'exemple que je te donne.

Edited by devorigin

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...