常見的?CURLE_SSL_CACERT (60)
?錯誤, 解決辦法:
從?https://curl.haxx.se/ca/cacert.pem?(opens new window)下載最新的
可直接下載2022 年 3 月 22 日
配置?php.ini
?文件,搜索?[curl]
?,在下方添加
curl.cainfo = "D:\phpStudy\php\php-7.0.12-nts\ext\cacert.pem"
curl post
請求
/**curl中的post請求* @param $url 請求地址* @param $post 請求參數*/
function curl_post($url,$post){$curl = curl_init();//初始化// 設置抓取的urlcurl_setopt($curl, CURLOPT_URL, $url);// 設置頭文件的信息作為數據流輸出curl_setopt($curl, CURLOPT_HEADER, false);// 設置獲取的信息以文件流的形式返回,而不是直接輸出。curl_setopt($curl, CURLOPT_RETURNTRANSFER, false);// 設置post方式提交curl_setopt($curl, CURLOPT_POST, true);// POST請求參數curl_setopt($curl, CURLOPT_POSTFIELDS, $post);// https請求 不驗證證書和hostscurl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);// 添加頭部信息curl_setopt($curl, CURLOPT_HTTPHEADER, ["Content-Type: application/json","Accept: application/json",]);// 執行命令$data = curl_exec($curl);if (curl_errno($curl)) {return curl_error($curl);}curl_close($curl); //關閉URL請求return $data;
}
curl get
請求
/*** @param $url 請求地址* @return mixed|string*/
function curl_get($url)
{// 初始化$curl = curl_init();// 設置請求的urlcurl_setopt($curl, CURLOPT_URL, $url);// 設置頭文件的信息作為數據流輸出curl_setopt($curl, CURLOPT_HEADER, false);// 設置獲取的信息以文件流的形式返回,而不是直接輸出。curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);// 執行命令$data = curl_exec($curl);if (curl_errno($curl)) {return curl_error($curl);}curl_close($curl); //關閉URL請求return $data;
}
有時候使用json_encode
傳遞json
數據,參數內容中包含中文,返回值不對的情況傳遞第二個參數
json_encode($post, JSON_UNESCAPED_UNICODE); // 中文不轉為unicode ,對應的數字 256
json_encode
?另一個常用參數
json_encode($post, JSON_UNESCAPED_SLASHES); // 不轉義反斜杠,對應的數字 64
json_encode
只能傳遞一個常量,如果同時使用兩個則: 256 + 64 = 320
json_encode($post, 320); // 中文不轉為unicode,不轉義反斜杠