Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich PHP cURL verwenden, um Daten von HTTPS-URLs sicher abzurufen?

Wie kann ich PHP cURL verwenden, um Daten von HTTPS-URLs sicher abzurufen?

Susan Sarandon
Susan SarandonOriginal
2024-12-14 11:22:10246Durchsuche

How Can I Use PHP cURL to Securely Retrieve Data from HTTPS URLs?

PHP CURL & HTTPS

Dieser Artikel befasst sich mit dem Problem der Verwendung von PHP CURL zum Abrufen von Webdateien von HTTPS-URLs.

Das Dilemma

Die bereitgestellte Funktion get_web_page stößt beim Versuch, Inhalte von HTTPS abzurufen, auf einen Fehler URLs.

Die Lösung

Um die HTTPS-Unterstützung zu aktivieren, können wir eine von zwei Lösungen implementieren:

Lösung 1: Manuelle Option

Diese Zeile hinzufügen zu Ihr Optionen-Array:

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false)

Achtung: Diese Schnellkorrektur deaktiviert die Zertifikatsüberprüfung Ihr System ist anfällig für Man-in-the-Middle-Angriffe.

Lösung 2: Funktionsaktualisierung

Integrieren Sie dasselbe Code-Snippet in die aktualisierte 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 = array(
        CURLOPT_RETURNTRANSFER => true,     // return web page
        CURLOPT_HEADER         => false,    // don't return headers
        CURLOPT_FOLLOWLOCATION => true,     // follow redirects
        CURLOPT_ENCODING       => "",       // handle all encodings
        CURLOPT_USERAGENT      => "spider", // who am i
        CURLOPT_AUTOREFERER    => true,     // set referer on redirect
        CURLOPT_CONNECTTIMEOUT => 120,      // timeout on connect
        CURLOPT_TIMEOUT        => 120,      // timeout on response
        CURLOPT_MAXREDIRS      => 10,       // stop after 10 redirects
        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;
}

Das obige ist der detaillierte Inhalt vonWie kann ich PHP cURL verwenden, um Daten von HTTPS-URLs sicher abzurufen?. 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