Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich meine PHP-Funktion „get_web_page' ändern, um HTTPS-Anfragen mit cURL zu verarbeiten?

Wie kann ich meine PHP-Funktion „get_web_page' ändern, um HTTPS-Anfragen mit cURL zu verarbeiten?

Susan Sarandon
Susan SarandonOriginal
2024-12-16 18:53:10177Durchsuche

How Can I Modify My PHP `get_web_page` Function to Handle HTTPS Requests Using cURL?

PHP CURL & HTTPS

Dieser Artikel befasst sich mit dem Problem der Implementierung der get_web_page-Funktion für HTTPS-Anfragen in PHP mithilfe von CURL.

Die bereitgestellte Funktion verarbeitet HTTP-Anfragen einwandfrei. Allerdings stößt es beim Umgang mit HTTPS-Verbindungen auf Schwierigkeiten. Um dieses Problem zu beheben, nehmen wir eine wesentliche Änderung in die Funktion auf.

Indem wir die folgende Zeile zum Optionsarray hinzufügen:

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false)

wir weisen CURL an, die SSL-Zertifikatsüberprüfung zu deaktivieren. Dies ist eine schnelle Lösung, erhöht aber auch Ihre Anfälligkeit für Man-in-the-Middle-Angriffe.

Alternativ können Sie diese Änderung direkt in die Funktion einbinden:

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

Mit Mit dieser Änderung verarbeitet die Funktion get_web_page effektiv sowohl HTTP- als auch HTTPS-Anfragen.

Das obige ist der detaillierte Inhalt vonWie kann ich meine PHP-Funktion „get_web_page' ändern, um HTTPS-Anfragen mit cURL zu verarbeiten?. 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