Récupérer une donnée sur un site distant avec Curl

PHP supporte libcurl, une bibliothèque créée par Daniel Stenberg, qui vous permet de vous connecter et de communiquer avec différents types de serveurs, et ce, avec différents types de protocoles. libcurl supporte actuellement les protocoles http, https, ftp, gopher, telnet, DICT, file et LDAP. libcurl supporte également les certificats HTTPS, HTTP POST, HTTP PUT, le téléchargement FTP (ceci pouvant également être effectué via l'extension ftp de PHP), les formulaires de téléchargement HTTP, les serveurs mandataires (proxy), les cookies et l'identification utilisateur/mot de passe.

Ces fonctions ont été ajoutées en PHP 4.0.2.

Suivre cette adresse pour plus d'informations : http://php.net/manual/fr/book.curl.php

I. Le script et quelques brèves explications

Avant de lire la suite, je tiens à préciser que le but est d'uniquement récupérer le prix d'un produit décrit dans la page distante. De ce fait, la structure du code n'est pas tout a fait un exemple à suivre.

<?php
 
$url = 'http://www.topachat.com/pages/detail2_cat_est_micro_puis_rubrique_est_w_boi_sa_puis_ref_est_in10056746.html';
 
$curl = curl_init();									// Initiatilsation de la session cURL.
 
// Définition des options de transmission
curl_setopt($curl, CURLOPT_URL, $url);					// On définit l'url à récupérer.
curl_setopt($curl, CURLOPT_COOKIESESSION, true);		// Force cURL utiliser de nouveau cookies de session.
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);		// Retourne le transfert sous forme de chaine de valeur.
 
$page = curl_exec($curl);								// Exécute la session cURL et enregistre le contenu de la page dans la variable.
curl_close($curl);										// Ferme la session cURL et libères toutes les ressources réservées.
 
echo $page;												// Affichage du code HTML pour que le code JavaScript puisse récupérer une valeur précise.
 
// Script développé en Javascript qui va récupérer la valeur DOM. 
// Grâce à Jquery, la procédure est simple et rapide.
$script = '<script src="jquery-2.1.3.min.js"></script>
<script>
 
	var value = $("#panier").find(".priceFinal").html();	// On récupère le contenue de la balise
	value = value.split("&");								// On sépare de ce qui est inutile
	alert(value[0] + " euros");								// On affiche la valeur
 
</script>
';
 
echo $script;											// Insertion du script dans le DOM
 
?>

II. Améliorations

Ce script peut être utilisé avec un tache cron qui automatiquement va récupérer le prix pour connaitre les éventuels changements. Les données récupérer au fils du temps peuvent être enregistré dans une base de donnée et ainsi établir un graph représentant les meilleurs opportunités pour acheter le produit.