Artikel ini menangani isu penggunaan PHP CURL untuk mendapatkan semula fail web daripada URL HTTPS.
Fungsi yang disediakan, get_web_page, menghadapi masalah apabila cuba mengambil kandungan daripada HTTPS URL.
Untuk mendayakan sokongan HTTPS, kami boleh melaksanakan salah satu daripada dua penyelesaian:
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.
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!