Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mengubah Suai Fungsi `get_web_page` PHP Saya untuk Mengendalikan Permintaan HTTPS Menggunakan cURL?

Bagaimanakah Saya Boleh Mengubah Suai Fungsi `get_web_page` PHP Saya untuk Mengendalikan Permintaan HTTPS Menggunakan cURL?

Susan Sarandon
Susan Sarandonasal
2024-12-16 18:53:10177semak imbas

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

PHP CURL & HTTPS

Artikel ini bertujuan untuk menangani isu pelaksanaan fungsi get_web_page untuk permintaan HTTPS dalam PHP menggunakan CURL.

Fungsi yang disediakan mengendalikan permintaan HTTP dengan sempurna. Walau bagaimanapun, apabila berurusan dengan sambungan HTTPS, ia menghadapi kesukaran. Untuk menyelesaikan masalah ini, kami akan memasukkan pengubahsuaian penting ke dalam fungsi.

Dengan menambahkan baris berikut pada tatasusunan pilihan:

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false)

kami mengarahkan CURL untuk melumpuhkan pengesahan sijil SSL. Ini ialah penyelesaian yang pantas, tetapi ia juga meningkatkan kerentanan anda terhadap serangan man-in-the-middle.

Sebagai alternatif, anda boleh memasukkan pengubahsuaian ini terus ke dalam fungsi:

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

Dengan pengubahsuaian ini, fungsi get_web_page akan mengendalikan kedua-dua permintaan HTTP dan HTTPS dengan berkesan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Suai Fungsi `get_web_page` PHP Saya untuk Mengendalikan Permintaan HTTPS Menggunakan cURL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn