Table des matières
Niveau
..........
En rapport...

Introduction

CURL est une extension PHP qui permet d'appeler une page distante ou non, en lui postant des variables (ou pas) et de récupérer le résultat dans une variable.
L'intérêt majeur est de pouvoir effectuer une opération directement sur le serveur sans aller/retour.
Par exemple, avec curl pourriez faire une requête sur google, récupéré les réponse dans une variable, changer la mise en page et afficher cette variable (notez que ce serais une violation de droit)
On pourrais aussi se loguer a un webmail et récupérer les nouveaux mails pour les afficher sur son site…

Minimum requis

Comme je l'ai dit plus haut CURL est une extension PHP, pour l'utiliser il fait donc que votre hébergeur l'ai activé.
Pour le vérifier, utilisez phpinfo. Vous devez voir la ligne :

CURL support enabled

Code

Afin de faciliter l'utilisation de CURL, j'ai mis au point cette petite fonction.
Son utilisation est simple, on lui passe en paramètre l'url a appeler, les champs a poster (sous la forme “var1=contenu1&var2=contenu2….”) et la méthode (get ou post).

php
function Curlit($url,$params='',$method='post') {
	$method=strtolower($method);
	$user_agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
	curl_setopt($ch, CURLOPT_HEADER, 0);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION,true);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
	curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
	curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie_curl");
	curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie_curl");	
        curl_setopt($ch, CURLOPT_TIMEOUT, 5); //en seconde
	if ($method=='post') {	
		if ($params!='')
			curl_setopt($ch, CURLOPT_POSTFIELDS,$params);
		curl_setopt($ch, CURLOPT_POST,1);
		curl_setopt($ch, CURLOPT_URL,$url);
	} else {
		curl_setopt($ch, CURLOPT_URL,$url.(($params!='')?'?'.$params:''));
	}
	$v=curl_exec($ch);
	if (curl_errno($ch)) {
		return curl_error($ch);
	} else {
		curl_close($ch);
	}
	return $v;
}
//exemple de requête sur google :
echo Curlit('http://www.google.com/search','q=wikistuce','get');

Un peu plus

La documentation complète de CURL se trouve ici : http://fr.php.net/manual/fr/ref.curl.php


iDo 01/02/2006 10:23