Jean-Francois Ortolo
2011-03-01 16:03:56 UTC
Bonjour
Vous connaissez peut-être la librairie curl en php
J'ai absolument besoin de faire des requêtes http asynchrone, et je
sais que je ne peux pas utiliser les fonctions de socket type
fsockopen() ( D'ailleurs je crois que ce n'est plus recommandé de les
utiliser ).
Pour faire une requête http asynchrone en get avec curl, suffit-il de
procéder comme celà ?
On fait :
<?php
function callback($ch, $str)
{
global $fd;
// Toute la chaîne $str est écrite.
$len = fwrite($fd, $str);
// La longueur lue et donc écrite,
// de $str, doit être rendue
// par la fonction de callback.
return($len);
}
$fd = open("filename", "w");
// Vérifications sur $fd ...
$ch = curl_init();
// Vérifications éventuelles sur $ch ...
// Les variables sotncensées être définies avant.
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 3600);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, "callback");
curl_exec();
fclose($fd);
exit;
?>
Première question :
Faut-il mettre curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); , pour
que le résultat soit écrit dansle fichier "filename"et non pas affiché ?
Deuxième question :
Ce code permet-il réellement, de faire une requête http asynchrone ?
Celà, il me semble, n'est pas précisé dans le PHP Manual.
Merci beaucoup de vos réponses.
Amicalement.
Jean-François Ortolo
Vous connaissez peut-être la librairie curl en php
J'ai absolument besoin de faire des requêtes http asynchrone, et je
sais que je ne peux pas utiliser les fonctions de socket type
fsockopen() ( D'ailleurs je crois que ce n'est plus recommandé de les
utiliser ).
Pour faire une requête http asynchrone en get avec curl, suffit-il de
procéder comme celà ?
On fait :
<?php
function callback($ch, $str)
{
global $fd;
// Toute la chaîne $str est écrite.
$len = fwrite($fd, $str);
// La longueur lue et donc écrite,
// de $str, doit être rendue
// par la fonction de callback.
return($len);
}
$fd = open("filename", "w");
// Vérifications sur $fd ...
$ch = curl_init();
// Vérifications éventuelles sur $ch ...
// Les variables sotncensées être définies avant.
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_TIMEOUT, 3600);
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);
curl_setopt($ch, CURLOPT_WRITEFUNCTION, "callback");
curl_exec();
fclose($fd);
exit;
?>
Première question :
Faut-il mettre curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); , pour
que le résultat soit écrit dansle fichier "filename"et non pas affiché ?
Deuxième question :
Ce code permet-il réellement, de faire une requête http asynchrone ?
Celà, il me semble, n'est pas précisé dans le PHP Manual.
Merci beaucoup de vos réponses.
Amicalement.
Jean-François Ortolo
--
Visitez mon site gratuit donnant des Statistiques,
des Pronostics et des Historiques Graphiques
sur les Courses de Chevaux:
http://www.pronostics-courses.fr
Visitez mon site gratuit donnant des Statistiques,
des Pronostics et des Historiques Graphiques
sur les Courses de Chevaux:
http://www.pronostics-courses.fr