La comprobación y el manejo de errores son amigos del programador. Compruebe los valores de retorno de las funciones cURL de inicialización y ejecución. curl_error()
y curl_errno()
contendrá más información en caso de avería:
try {
$ch = curl_init();
// Check if initialization had gone wrong*
if ($ch === false) {
throw new Exception('failed to initialize');
}
curl_setopt($ch, CURLOPT_URL, 'http://example.com/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
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));
}
/* Process $content here */
// Close curl handle
curl_close($ch);
} catch(Exception $e) {
trigger_error(sprintf(
'Curl failed with error #%d: %s',
$e->getCode(), $e->getMessage()),
E_USER_ERROR);
}
* El curl_init()
manual dice:
Devuelve un identificador cURL en caso de éxito, FALSO en errores.
He observado que la función regresa FALSE
cuando está usando su $url
parámetro y el dominio no se pudo resolver. Si el parámetro no se utiliza, la función podría no volver nunca FALSE
. Sin embargo, compruébelo siempre de todos modos, ya que el manual no indica claramente qué son los "errores" en realidad.
curl_error()
los detalles del error y publíquelos aquí, por favor.