Questo codice sempre fallisce (cioè, $result
è booleano false
):timeout di curl inferiore a 1000 ms non riesce sempre?
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $path);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$curl_version = curl_version();
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 999);
$result = curl_exec($ch);
curl_close($ch);
Questo codice riesce sempre (cioè $result
è una stringa contenente l'header):
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $path);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$curl_version = curl_version();
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT_MS, 1000);
$result = curl_exec($ch);
curl_close($ch);
L'unica differenza è che Ho cambiato il timeout da 999 ms a 1000 ms.
Questo deve essere un bug in arricciatura o una sorta di minimo nella documentazione per i timeout di connessione che ho perso. Cos'è questo? I miei soldi sono su quest'ultimo.
Wow, come mi sono perso ?! – Trott
Ok, ho visto questo nella documentazione ma non capisco davvero cosa significhi e come posso farlo funzionare con un valore inferiore a 1000. Qualsiasi aiuto tu possa darmi sarebbe apprezzato, grazie! –
Devi compilare libcurl per te, usando '--enable-threaded-resolver' e poi compilare l'estensione curl per php contro di essa. –