PHP利用curl發(fā)送HTTP請(qǐng)求的實(shí)例代碼
cURL 函數(shù)概述
PHP支持的由Daniel Stenberg創(chuàng)建的libcurl庫(kù)允許你與各種的服務(wù)器使用各種類型的協(xié)議進(jìn)行連接和通訊。
libcurl目前支持http、https、ftp、gopher、telnet、dict、file和ldap協(xié)議。libcurl同時(shí)也支持HTTPS認(rèn)證、HTTP POST、HTTP PUT、 FTP 上傳(這個(gè)也能通過(guò)PHP的FTP擴(kuò)展完成)、HTTP 基于表單的上傳、代理、cookies和用戶名+密碼的認(rèn)證。
PHP中使用cURL實(shí)現(xiàn)Get和Post請(qǐng)求的方法
這些函數(shù)在PHP 4.0.2中被引入。
實(shí)例
因?yàn)樾枰?php 開發(fā)中對(duì)接其它接口需要用 php curl 去對(duì)接其它接口 我把他們封裝成函數(shù) 希望能對(duì)大家有所幫助。
這里面是封裝好的會(huì)自動(dòng)把 data 進(jìn)行轉(zhuǎn)成 json 格式,同時(shí)解碼成 php 數(shù)組輸出。
<?php function geturl($url){ $headerArray =array("Content-type:application/json;","Accept:application/json"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch,CURLOPT_HTTPHEADER,$headerArray); $output = curl_exec($ch); curl_close($ch); $output = json_decode($output,true); return $output; } function posturl($url,$data){ $data = json_encode($data); $headerArray =array("Content-type:application/json;charset='utf-8'","Accept:application/json"); $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST,FALSE); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); curl_setopt($curl,CURLOPT_HTTPHEADER,$headerArray); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($curl); curl_close($curl); return json_decode($output,true); } function puturl($url,$data){ $data = json_encode($data); $ch = curl_init(); //初始化CURL句柄 curl_setopt($ch, CURLOPT_URL, $url); //設(shè)置請(qǐng)求的URL curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type:application/json')); curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //設(shè)為TRUE把curl_exec()結(jié)果轉(zhuǎn)化為字串,而不是直接輸出 curl_setopt($ch, CURLOPT_CUSTOMREQUEST,"PUT"); //設(shè)置請(qǐng)求方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//設(shè)置提交的字符串 $output = curl_exec($ch); curl_close($ch); return json_decode($output,true); } function delurl($url,$data){ $data = json_encode($data); $ch = curl_init(); curl_setopt ($ch,CURLOPT_URL,$put_url); curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type:application/json')); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); $output = curl_exec($ch); curl_close($ch); $output = json_decode($output,true); } function patchurl($url,$data){ $data = json_encode($data); $ch = curl_init(); curl_setopt ($ch,CURLOPT_URL,$url); curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Content-type:application/json')); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt ($ch, CURLOPT_CUSTOMREQUEST, "PATCH"); curl_setopt($ch, CURLOPT_POSTFIELDS,$data); //20170611修改接口,用/id的方式傳遞,直接寫在url中了 $output = curl_exec($ch); curl_close($ch); $output = json_decode($output); return $output; } ?>
以上就是PHP利用curl發(fā)送HTTP請(qǐng)求的實(shí)例代碼的詳細(xì)內(nèi)容,更多關(guān)于PHP 發(fā)送HTTP請(qǐng)求的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
thinkPHP中create方法與令牌驗(yàn)證實(shí)例淺析
這篇文章主要介紹了thinkPHP中create方法與令牌驗(yàn)證,以一個(gè)簡(jiǎn)單實(shí)例形式分析了thinkPHP中create方法與令牌驗(yàn)證增加表單安全性的相關(guān)技巧,代碼備有詳盡注釋說(shuō)明,需要的朋友可以參考下2015-12-12解決windows上php xdebug 無(wú)法調(diào)試的問(wèn)題
這篇文章主要介紹了解決windows上php xdebug 無(wú)法調(diào)試的問(wèn)題,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-02-02ThinkPHP框架搭建及常見問(wèn)題(XAMPP安裝失敗、Apache/MySQL啟動(dòng)失敗)
這篇文章主要介紹了ThinkPHP框架搭建及常見問(wèn)題匯總,主要有XAMPP安裝失敗、Apache啟動(dòng)失敗、MySQL啟動(dòng)失敗等問(wèn)題,感興趣的小伙伴們可以參考一下2016-04-04php中的雙引號(hào)與單引號(hào)的基本使用及區(qū)別
字符串是一個(gè)非常要的知識(shí),在開發(fā)中,有的使用單引號(hào),有的使用雙引號(hào),這個(gè)是有區(qū)別的,這篇文章主要介紹了php中的雙引號(hào)與單引號(hào)的基本使用,需要的朋友可以參考下2023-06-06php過(guò)濾表單提交的html等危險(xiǎn)代碼
表單提交如果安全做得不好就很容易因?yàn)檫@個(gè)表單提交導(dǎo)致網(wǎng)站被攻擊了,下面我來(lái)分享兩個(gè)常用的php過(guò)濾表單提交的危險(xiǎn)代碼的實(shí)例,各位有需要的朋友可參考。2014-11-11