Ciao,
sto facendo uno script che interroga un server remoto con la curl e analizza il risultato.
Premetto che lo script funziona, infatti quando il server remoto risponde entro i 15 secondi tutto va a meraviglia.
Quando invece il server remoto impiega più di 15 secondi la curl viene interrotta e restiusce come risultato una stringa vuota.
Questo l'estratto del codice:
Codice PHP:
$fp = fopen($cookie, "w");
fclose($fp);
$ch = curl_init();
$i=0;
foreach ($chain as $url) //chain contiene i due url, uno per l'autenticazione e uno per la pagina target
{
curl_setopt ($ch, CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_USERAGENT, $agent);
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_TIMEOUT, 100);
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION,1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie);
if ($i == 0)
{
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
}
else
{
curl_setopt ($ch, CURLOPT_POST, 0);
}
echo "$i:".time()."<br>";
$result = curl_exec ($ch);
echo "$i:".time()."<br>";
$i = $i + 1;
}
Il risultato dello script quando va male (con le echo) è il seguente:
Codice:
0:1243942462
0:1243942462
1:1243942463
1:1243942478
Al secondo ciclo ($i = 1) la curl dura sempre un massimo di 15 secondi... e il $result a quel punto è una stringa vuota.
Sapete dirmi se esiste un modo per superare questo limite dei 15 secondi almeno quando si fa una curl_exec?
Come timeout della curl avevo impostato 100 s.
Grazie.