PHP CURL 和 HTTPS
提供的函數是檢索網頁的絕佳工具。但是,它在處理 HTTPS URL 時遇到問題。要解決此問題,我們需要進行必要的調整以啟用 HTTPS 支援。
解決方案1:CURLOPT_SSL_VERIFYPEER
第一個也是最快的解決方案是將以下選項加入$options 陣列:
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
這將停用證書驗證,有效地允許您連接到任何主機。但是,不建議這樣做,因為它會讓您容易受到中間人攻擊。
解決方案2:更新功能
另一種方法是合併直接修復到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; }
此更新的函數現在透過停用來支援HTTP 和HTTPS URL以安全性為代價的憑證驗證。
以上是如何修復 PHP cURL HTTPS 連線問題?的詳細內容。更多資訊請關注PHP中文網其他相關文章!