這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)怎么在PHP中對(duì)CURL進(jìn)行封裝,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
創(chuàng)新互聯(lián)是一家專(zhuān)注于網(wǎng)站設(shè)計(jì)、做網(wǎng)站與策劃設(shè)計(jì),雨湖網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:雨湖等地區(qū)。雨湖做網(wǎng)站價(jià)格咨詢(xún):18982081108CURL是一個(gè)非常強(qiáng)大的開(kāi)源庫(kù),支持很多協(xié)議,包括HTTP、FTP、TELNET等,我們使用它來(lái)發(fā)送HTTP請(qǐng)求。它給我 們帶來(lái)的好處是可以通過(guò)靈活的選項(xiàng)設(shè)置不同的HTTP協(xié)議參數(shù),并且支持HTTPS。CURL可以根據(jù)URL前綴是“HTTP” 還是“HTTPS”自動(dòng)選擇是否加密發(fā)送內(nèi)容。
使用CURL的PHP擴(kuò)展完成一個(gè)HTTP請(qǐng)求的發(fā)送一般有以下幾個(gè)步驟:
1.初始化連接句柄;
2.設(shè)置CURL選項(xiàng);
3.執(zhí)行并獲取結(jié)果;
4.釋放VURL連接句柄。
PHP.ini擴(kuò)展開(kāi)啟
//使用curl發(fā)送請(qǐng)求 第一個(gè)參數(shù)發(fā)送的url地址,第二個(gè)參數(shù)是否發(fā)送post請(qǐng)求,默認(rèn)是發(fā)送get請(qǐng)求,第三個(gè)就是請(qǐng)求的參數(shù),第四個(gè)參數(shù)是否發(fā)送https function curl_request($url, $post=false, $param=[], $https = false) { //curl_init 初始化的時(shí)候傳遞url $ch = curl_init($url); //curl_setopt 設(shè)置一些請(qǐng)求選項(xiàng),當(dāng)然get是默認(rèn)的也是好處理的 if($post){ //設(shè)置請(qǐng)求方式和請(qǐng)求參數(shù),post請(qǐng)求,要設(shè)置的類(lèi)型就是bool型的,那么我們肯定是啟用的設(shè)置為true,POSTFILEDS是傳遞的參數(shù),它的第三個(gè)參數(shù)就是傳遞的參數(shù)可以為一個(gè)數(shù)組類(lèi)型的也就是我們的param curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $param); } // https請(qǐng)求,默認(rèn)會(huì)進(jìn)行驗(yàn)證 if($https){ //禁止從服務(wù)器端 驗(yàn)證客戶(hù)端的證書(shū),注意7.10開(kāi)始默認(rèn)為開(kāi)啟驗(yàn)證的?。?! curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); } //curl_exec 執(zhí)行請(qǐng)求會(huì)話(發(fā)送請(qǐng)求) curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $res = curl_exec($ch); //curl_close 關(guān)閉請(qǐng)求會(huì)話 curl_close($ch); return $res; }
官網(wǎng)說(shuō)明:
1、CURLOPT_POST
TRUE 時(shí)會(huì)發(fā)送 POST 請(qǐng)求,類(lèi)型為:application/x-www-form-urlencoded,是 HTML 表單提交時(shí)最常見(jiàn)的一種。
2、CURLOPT_POSTFIELDS
操作來(lái)發(fā)送。要發(fā)送文件,在文件名前面加上@前綴并使用完整路徑。文件類(lèi)型可在文件名后以 ';type=mimetype' 的格式指定。這個(gè)參數(shù)可以是 urlencoded 后的字符串,類(lèi)似'para1=val1¶2=val2&...',也可以使用一個(gè)以字段名為鍵值,字段數(shù)據(jù)為值的數(shù)組。如果value是一個(gè)數(shù)組,Content-Type頭將會(huì)被設(shè)置成multipart/form-data。 從 PHP 5.2.0 開(kāi)始,使用 @ 前綴傳遞文件時(shí),value 必須是個(gè)數(shù)組。 從 PHP 5.5.0 開(kāi)始, @ 前綴已被廢棄,文件可通過(guò) CURLFile 發(fā)送。設(shè)置 CURLOPT_SAFE_UPLOAD 為 TRUE 可禁用 @ 前綴發(fā)送文件,以增加安全性。
3、CURLOPT_SSL_VERIFYPEER
FALSE 禁止 cURL 驗(yàn)證對(duì)等證書(shū)(peer'scertificate)。要驗(yàn)證的交換證書(shū)可以在 CURLOPT_CAINFO 選項(xiàng)中設(shè)置,或在 CURLOPT_CAPATH中設(shè)置證書(shū)目錄
上述就是小編為大家分享的怎么在PHP中對(duì)CURL進(jìn)行封裝了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。