//php腳本開始
/*Get請求遠(yuǎn)程內(nèi)容函數(shù)
url請求網(wǎng)址
head模似請求頭
foll是否自動跳轉(zhuǎn)
ref來路
head是否設(shè)置頭
*/
$ip=$_SERVER['REMOTE_ADDR'];
$head=array(
'X-FORWARDED-FOR:'.$ip,
'CLIENT-IP:'.$ip,
'Accept-Language: zh-cn',
'Accept-Encoding:gzip,deflate',
'Connection: Keep-Alive',
'Cache-Control: no-cache'
);
$cookie_file=dirname(__FILE__).'/cookie.txt';//COOKIE存放地址
functionget($url,$head=false,$foll=1,$ref=false){
$curl=curl_init();//啟動一個(gè)CURL會話
if($head){
curl_setopt($curl,CURLOPT_HTTPHEADER,$head);//模似請求頭
}
curl_setopt($curl,CURLOPT_URL,$url);//要訪問的地址
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);//對認(rèn)證證書來源的檢查
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,1);//從證書中檢查SSL加密算法是否存在
curl_setopt($curl,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);//模擬用戶使用的瀏覽器
@curl_setopt($curl,CURLOPT_FOLLOWLOCATION,$foll);//使用自動跳轉(zhuǎn)
if($ref){
curl_setopt($curl,CURLOPT_REFERER,$ref);//帶來的Referer
}else{
curl_setopt($curl,CURLOPT_AUTOREFERER,1);//自動設(shè)置Referer
}
curl_setopt($curl,CURLOPT_HTTPGET,1);//發(fā)送一個(gè)常規(guī)的Post請求
curl_setopt($curl,CURLOPT_COOKIEJAR,$GLOBALS['cookie_file']);//存放Cookie信息的文件名稱
curl_setopt($curl,CURLOPT_COOKIEFILE,$GLOBALS['cookie_file']);//讀取上面所儲存的Cookie信息
curl_setopt($curl,CURLOPT_ENCODING,'gzip,deflate');//解釋gzip
curl_setopt($curl,CURLOPT_TIMEOUT,30);//設(shè)置超時(shí)限制防止死循環(huán)
curl_setopt($curl,CURLOPT_HEADER,0);//顯示返回的Header區(qū)域內(nèi)容
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//獲取的信息以文件流的形式返回
$tmpInfo=curl_exec($curl);//執(zhí)行操作
if(curl_errno($curl)) {echo'Errno'.curl_error($curl);}
$data[]=curl_getinfo($curl);
curl_close($curl);//關(guān)鍵CURL會話
$data[]=$tmpInfo;
return$data;//返回?cái)?shù)據(jù)
}
functionpost($url,$head=false,$foll=1,$ref=false,$post){
$curl=curl_init();//啟動一個(gè)CURL會話
if($head){
curl_setopt($curl,CURLOPT_HTTPHEADER,$head);//模似請求頭
}
curl_setopt($curl,CURLOPT_URL,$url);//要訪問的地址
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);//對認(rèn)證證書來源的檢查
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,1);//從證書中檢查SSL加密算法是否存在
curl_setopt($curl,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);//模擬用戶使用的瀏覽器
@curl_setopt($curl,CURLOPT_FOLLOWLOCATION,$foll);//使用自動跳轉(zhuǎn)
if($ref){
curl_setopt($curl,CURLOPT_REFERER,$ref);//帶來的Referer
}else{
curl_setopt($curl,CURLOPT_AUTOREFERER,1);//自動設(shè)置Referer
}
curl_setopt($curl,CURLOPT_POST,1);//發(fā)送一個(gè)常規(guī)的Post請求
curl_setopt($curl,CURLOPT_POSTFIELDS,$post);// Post提交的數(shù)據(jù)包
curl_setopt($curl,CURLOPT_COOKIEJAR,$GLOBALS['cookie_file']);//存放Cookie信息的文件名稱
curl_setopt($curl,CURLOPT_COOKIEFILE,$GLOBALS['cookie_file']);//讀取上面所儲存的Cookie信息
curl_setopt($curl,CURLOPT_ENCODING,'gzip,deflate');//解釋gzip
curl_setopt($curl,CURLOPT_TIMEOUT,30);//設(shè)置超時(shí)限制防止死循環(huán)
curl_setopt($curl,CURLOPT_HEADER,0);//顯示返回的Header區(qū)域內(nèi)容
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//獲取的信息以文件流的形式返回
$tmpInfo=curl_exec($curl);//執(zhí)行操作
if(curl_errno($curl)) {echo'Errno'.curl_error($curl);}
$data[]=curl_getinfo($curl);
curl_close($curl);//關(guān)鍵CURL會話
$tmpInfo=preg_replace('/script/','js',$tmpInfo);
$data[]=$tmpInfo;
return$data;//返回?cái)?shù)據(jù)
}
//截取字符
functionpreg_message($message,$rule,$getstr,$limit=1) {
$result=array('0'=>'');
$rule= conver_trule($rule);//轉(zhuǎn)義正則表達(dá)式特殊字符串
$rule=str_replace('\['.$getstr.'\]','\s*(.+?)\s*',$rule);//解析為正則表達(dá)式
if($limit==1) {
preg_match("/$rule/is",$message,$rarr);
if(!empty($rarr[1])) {
$result[0] =$rarr[1];
}
}else{
preg_match_all("/$rule/is",$message,$rarr);
if(!empty($rarr[1])) {
$result=$rarr[1];
}
}
return$result;
}
/**
*轉(zhuǎn)義正則表達(dá)式字符串
*/
functionconver_trule($rule) {
$rule=preg_quote($rule,"/");//轉(zhuǎn)義正則表達(dá)式
$rule=str_replace('\*','.*?',$rule);
$rule=str_replace('\|','|',$rule);
return$rule;
}
/*轉(zhuǎn)編碼*/
functionescape($str) {
preg_match_all("/[-].|[\x01-?]+/",$str,$r);
$ar=$r[0];
foreach($aras$k=>$v) {
if(ord($v[0]) <128)
$ar[$k] =rawurlencode($v);
else
$ar[$k] ="%u".bin2hex(iconv("GB2312","UCS-2",$v));
}
returnjoin("",$ar);
}
利用php curl發(fā)送 post get https請求
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
推薦閱讀更多精彩內(nèi)容
- 接通微信jssdk的時(shí)候正好用到curl,順便簡單整理了一下方便以后使用。 get請求 post請求
- ** Http請求指的是客戶端向服務(wù)器的請求消息,Http請求主要分為get或post兩種,在Linux系統(tǒng)...
- 使用Curl 向sendCloud發(fā)送post請求 使用sendCloud發(fā)送郵件需要我們向sendCloud提供...
- 一、什么是CURL? cURL 是一個(gè)利用URL語法規(guī)定來傳輸文件和數(shù)據(jù)的工具,支持很多協(xié)議,如HTTP、FTP、...
- http://www.cnblogs.com/smyhvae/p/4006009.html android 5.0...