Maison > développement back-end > tutoriel php > Comment résoudre les problèmes de connexion HTTPS PHP cURL ?

Comment résoudre les problèmes de connexion HTTPS PHP cURL ?

Mary-Kate Olsen
Libérer: 2024-12-17 05:37:24
original
211 Les gens l'ont consulté

How to Fix PHP cURL HTTPS Connection Issues?

PHP CURL et HTTPS

La fonction fournie est un excellent outil pour récupérer des pages Web. Cependant, il rencontre des problèmes lors du traitement des URL HTTPS. Pour résoudre ce problème, nous devons effectuer les ajustements nécessaires pour activer la prise en charge HTTPS.

Solution 1 : CURLOPT_SSL_VERIFYPEER

La première et la plus rapide solution consiste à ajouter l'option suivante à le tableau $options :

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Copier après la connexion

Cela désactive la vérification du certificat, vous permettant ainsi de vous connecter à n'importe quel hôte. Cependant, cela n'est pas recommandé car cela vous rend vulnérable aux attaques de l'homme du milieu.

Solution 2 : Fonction mise à jour

Une approche alternative consiste à incorporer le correctif directement dans la fonction get_web_page :

/**
 * Get a web file (HTML, XHTML, XML, image, etc.) from a URL.  Return an
 * array containing the HTTP server response header fields and content.
 */
function get_web_page($url)
{
    $options = [
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER => false,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_ENCODING => '',
        CURLOPT_USERAGENT => 'spider',
        CURLOPT_AUTOREFERER => true,
        CURLOPT_CONNECTTIMEOUT => 120,
        CURLOPT_TIMEOUT => 120,
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_SSL_VERIFYPEER => false, // Disabled SSL Cert checks
    ];

    $ch = curl_init($url);
    curl_setopt_array($ch, $options);
    $content = curl_exec($ch);
    $err = curl_errno($ch);
    $errmsg = curl_error($ch);
    $header = curl_getinfo($ch);
    curl_close($ch);

    $header['errno'] = $err;
    $header['errmsg'] = $errmsg;
    $header['content'] = $content;
    return $header;
}
Copier après la connexion

Cette fonction mise à jour prend désormais en charge les URL HTTP et HTTPS en désactivant la vérification des certificats au prix de sécurité.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal