Maison  >  Article  >  développement back-end  >  Pourquoi curl_exec() renvoie-t-il False et comment le résoudre ?

Pourquoi curl_exec() renvoie-t-il False et comment le résoudre ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-19 22:20:02634parcourir

Why Does curl_exec() Return False and How to Troubleshoot It?

Dépannage de curl_exec() renvoyant False

Lors de l'utilisation de curl_exec(), il est essentiel de comprendre qu'il peut renvoyer false si des erreurs se produisent lors de l'initialisation. ou l'exécution. Pour déboguer le problème, implémentez la vérification et la gestion des erreurs.

Vérification et gestion des erreurs

  1. Vérifiez la valeur de retour de curl_init() :
<code class="php">if ($ch === false) {
    throw new Exception('Failed to initialize curl.');
}</code>
  1. Définissez explicitement l'URL à l'aide de curl_setopt() :
<code class="php">curl_setopt($ch, CURLOPT_URL, 'http://example.com/');</code>
  1. Vérifiez la valeur de retour de curl_exec() :
<code class="php">$content = curl_exec($ch);
if ($content === false) {
    throw new Exception(curl_error($ch), curl_errno($ch));
}</code>
  1. Vérifiez le code de retour HTTP :
<code class="php">$httpReturnCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);</code>

Exemple de code avec gestion des exceptions

<code class="php">try {
    $ch = curl_init();
    if ($ch === false) {
        throw new Exception('Failed to initialize curl.');
    }

    curl_setopt($ch, CURLOPT_URL, 'http://example.com/');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    $content = curl_exec($ch);
    if ($content === false) {
        throw new Exception(curl_error($ch), curl_errno($ch));
    }

    // Process $content here

} catch (Exception $e) {
    trigger_error(sprintf('Curl failed with error #%d: %s', $e->getCode(), $e->getMessage()), E_USER_ERROR);
} finally {
    if (is_resource($ch)) {
        curl_close($ch);
    }
}</code>

En implémentant ces erreurs mécanismes de vérification, vous pouvez identifier et gérer la raison spécifique pour laquelle curl_exec() renvoie false et prendre les mesures appropriées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn