Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Menggunakan PHP cURL untuk Mengambil Data dengan Selamat daripada URL HTTPS?

Bagaimanakah Saya Boleh Menggunakan PHP cURL untuk Mengambil Data dengan Selamat daripada URL HTTPS?

Susan Sarandon
Susan Sarandonasal
2024-12-14 11:22:10248semak imbas

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

PHP CURL & HTTPS

Artikel ini menangani isu penggunaan PHP CURL untuk mendapatkan semula fail web daripada URL HTTPS.

Dilema

Fungsi yang disediakan, get_web_page, menghadapi masalah apabila cuba mengambil kandungan daripada HTTPS URL.

Pembetulan

Untuk mendayakan sokongan HTTPS, kami boleh melaksanakan salah satu daripada dua penyelesaian:

Penyelesaian 1: Pilihan Manual

Tambah baris ini ke tatasusunan pilihan anda:

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, false)

Awas: Pembetulan pantas ini melumpuhkan pengesahan sijil, menjadikan sistem anda terdedah kepada serangan man-in-the-middle.

Penyelesaian 2: Kemas Kini Fungsi

Sertakan coretan kod yang sama ke dalam fungsi get_web_page yang dikemas kini:

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

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggunakan PHP cURL untuk Mengambil Data dengan Selamat daripada URL HTTPS?. 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