ctpctp Posté 4 Février 2009 Posté 4 Février 2009 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
Dadou Posté 4 Février 2009 Posté 4 Février 2009 Tu récupère la page complètement avec curl, puis sur le résultat tu utilises une expression régulière
adn Posté 4 Février 2009 Posté 4 Février 2009 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.
ctpctp Posté 4 Février 2009 Auteur Posté 4 Février 2009 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?
Dadou Posté 4 Février 2009 Posté 4 Février 2009 Pourquoi insérer dans la base avent d'extraire les infos que tu veux??
ctpctp Posté 4 Février 2009 Auteur Posté 4 Février 2009 Je trouvais ca plus simple d'inserer les données et de les traiter après.
devorigin Posté 6 Février 2009 Posté 6 Février 2009 (modifié) 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 tableauforeach ($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. Modifié 6 Février 2009 par devorigin
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant