1. 程式人生 > >PHP CURL GET HTTPS報錯SSL certificate problem: unable to get local issuer certificate

PHP CURL GET HTTPS報錯SSL certificate problem: unable to get local issuer certificate

請求HTTP

使用php curl獲取http資源,不會報錯。
如下:

<?php
// 建立curl資源
$ch = curl_init(); 
// 設定url
curl_setopt($ch, CURLOPT_URL, "baidu.com"); 
// 將Transfer作為字串返回
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// 執行並輸出
$output = curl_exec($ch); 
// 檢視錯誤
$error = curl_error($ch);
echo $error;
// 釋放curl資源
curl_close($ch
);

請求HTTPS

但是如果請求HTTPS的時候,預設會報錯:

SSL certificate problem: unable to get local issuer certificate

這是因為HTTPS需要證書認證,如果本地沒有裝,就會報這個錯誤,我們可以把這個認證關掉。

<?php
// 建立curl資源
$ch = curl_init(); 
// 設定url
curl_setopt($ch, CURLOPT_URL, "https://github.com/search?q=react"); 
// 將Transfer作為字串返回
curl_setopt($ch,
CURLOPT_RETURNTRANSFER, 1); // 關閉SSL驗證 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); // 執行並輸出 $output = curl_exec($ch); // 檢視錯誤 $error = curl_error($ch); echo $error; // 釋放curl資源 curl_close($ch);

參考:http://php.net/manual/zh/function.curl-setopt.php