Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana untuk Membetulkan Isu Sambungan PHP cURL HTTPS?

Bagaimana untuk Membetulkan Isu Sambungan PHP cURL HTTPS?

Mary-Kate Olsen
Lepaskan: 2024-12-17 05:37:24
asal
212 orang telah melayarinya

How to Fix PHP cURL HTTPS Connection Issues?

PHP CURL dan HTTPS

Fungsi yang disediakan ialah alat yang sangat baik untuk mendapatkan semula halaman web. Walau bagaimanapun, ia menghadapi masalah apabila berurusan dengan URL HTTPS. Untuk menyelesaikan masalah ini, kami perlu membuat pelarasan yang diperlukan untuk mendayakan sokongan HTTPS.

Penyelesaian 1: CURLOPT_SSL_VERIFYPEER

Penyelesaian pertama dan terpantas ialah menambah pilihan berikut kepada tatasusunan $options:

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
Salin selepas log masuk

Ini melumpuhkan pengesahan sijil, dengan berkesan membenarkan anda untuk menyambung ke mana-mana hos. Walau bagaimanapun, ini tidak disyorkan kerana ia menyebabkan anda terdedah kepada serangan man-in-the-middle.

Penyelesaian 2: Fungsi Dikemaskini

Pendekatan alternatif adalah dengan menggabungkan pembaikan terus ke dalam fungsi 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;
}
Salin selepas log masuk

Fungsi yang dikemas kini ini kini menyokong kedua-dua HTTP dan HTTPS URL dengan melumpuhkan pengesahan sijil pada kos keselamatan.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Isu Sambungan PHP cURL HTTPS?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan