Le contrôle et la gestion des erreurs sont les amis du programmeur. Vérifiez les valeurs de retour des fonctions cURL d'initialisation et d'exécution. curl_error()
y curl_errno()
contiendra des informations supplémentaires en cas d'échec :
try {
$ch = curl_init();
// Check if initialization had gone wrong*
if ($ch === false) {
throw new Exception('failed to initialize');
}
// Better to explicitly set URL
curl_setopt($ch, CURLOPT_URL, 'http://example.com/');
// That needs to be set; content will spill to STDOUT otherwise
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// Set more options
curl_setopt(/* ... */);
$content = curl_exec($ch);
// Check the return value of curl_exec(), too
if ($content === false) {
throw new Exception(curl_error($ch), curl_errno($ch));
}
// Check HTTP return code, too; might be something else than 200
$httpReturnCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
/* Process $content here */
} catch(Exception $e) {
trigger_error(sprintf(
'Curl failed with error #%d: %s',
$e->getCode(), $e->getMessage()),
E_USER_ERROR);
} finally {
// Close curl handle unless it failed to initialize
if (is_resource($ch)) {
curl_close($ch);
}
}
* Le site curl_init()
manuel États :
Renvoie un identifiant cURL en cas de succès, FAUX sur les erreurs.
J'ai observé que la fonction renvoie FALSE
lorsque vous utilisez son $url
et le domaine n'a pas pu être résolu. Si le paramètre n'est pas utilisé, la fonction pourrait ne reviennent jamais FALSE
. Vérifiez-le quand même toujours, car le manuel n'indique pas clairement ce que sont les "erreurs".
12 votes
Consultez
curl_error()
pour les détails de l'erreur et les poster ici, s'il vous plaît.0 votes
@LinusKleen Si vous postez le curl_error() comme réponse, je l'upvote car il m'a permis de voir quel était mon problème.
0 votes
Quel était exactement le problème ? Quelle erreur a
curl_error()
révéler ?