dimanche, 25 novembre 2007

Fonction url_get_contents en PHP

Plutôt que d'utiliser un bien moche file_get_contents($url)$url est une url, je vous propose une petite fonction url_get_contents($url) utilisant l'extension curl de PHP qui permet aussi bien de télécharger le contenu d'une url via GET que POST :

function url_get_contents($url, $post = null) {
$curl = curl_init();
curl_setopt ($curl, CURLOPT_URL, $url);
curl_setopt ($curl, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']);
curl_setopt ($curl, CURLOPT_HEADER, 0);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);
//curl_setopt ($curl, CURLOPT_FOLLOWLOCATION, 1); // if no safe_mode neither open_basedir

if (is_array($post)) {
curl_setopt ($curl, CURLOPT_POST, 1);
curl_setopt ($curl, CURLOPT_POSTFIELDS, $post);
}

$html = curl_exec ($curl);
curl_close ($curl);
return $html;
}

L'utilisation est réellement simple :

$content = url_get_contents('http://www.noisette.ch');

1 commentaire:

KillerWhile a dit…

Attention à la ligne curl_setopt ($curl, CURLOPT_FOLLOWLOCATION, 1);, si php tourne en safe_mode ou qu'un open_basedir est configuré, CURLOPT_FOLLOWLOCATION ne peut pas être utilisé.