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

Wie behebe ich PHP-cURL-HTTPS-Verbindungsprobleme?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-17 05:37:24322Durchsuche

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);

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;
}

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!

Stellungnahme:
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