Heim > Backend-Entwicklung > PHP-Tutorial > Wie behebe ich PHP-cURL-HTTPS-Verbindungsprobleme?

Wie behebe ich PHP-cURL-HTTPS-Verbindungsprobleme?

Mary-Kate Olsen
Freigeben: 2024-12-17 05:37:24
Original
212 Leute haben es durchsucht

How to Fix PHP cURL HTTPS Connection Issues?

PHP CURL und HTTPS

Die bereitgestellte Funktion ist ein hervorragendes Tool zum Abrufen von Webseiten. Beim Umgang mit HTTPS-URLs treten jedoch Probleme auf. Um dieses Problem zu beheben, müssen wir die notwendigen Anpassungen vornehmen, um die HTTPS-Unterstützung zu aktivieren.

Lösung 1: CURLOPT_SSL_VERIFYPEER

Die erste und schnellste Lösung besteht darin, die folgende Option hinzuzufügen das $options-Array:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Nach dem Login kopieren

Dadurch wird die Zertifikatsüberprüfung deaktiviert, sodass Sie effektiv eine Verbindung zu jedem Host herstellen können. Dies wird jedoch nicht empfohlen, da Sie dadurch anfällig für Man-in-the-Middle-Angriffe sind.

Lösung 2: Aktualisierte Funktion

Ein alternativer Ansatz ist die Integration den Fix direkt in die Funktion 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;
}
Nach dem Login kopieren

Diese aktualisierte Funktion unterstützt jetzt sowohl HTTP- als auch HTTPS-URLs, indem sie die kostenpflichtige Zertifikatsüberprüfung deaktiviert der Sicherheit.

Das obige ist der detaillierte Inhalt vonWie behebe ich PHP-cURL-HTTPS-Verbindungsprobleme?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage