一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP的curl實現get,post和cookie(實例介紹)

PHP的curl實現get,post和cookie(實例介紹)

2020-04-15 12:28PHP教程網 PHP教程

本篇文章是對PHP的curl實現get,post和cookie的方法進行了詳細的分析介紹,需要的朋友參考下

類似于dreamhost這類主機服務商,是顯示fopen的使用 的。使用php的curl可以實現支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL證書、HTTP POST、HTTP PUT 、FTP 上傳,kerberos、基于HTT格式的上傳、代理、cookie、用戶+口令證明、文件傳送恢復、http代理通道就最常用的來說,是基于http的 get和post方法。
代碼實現:
1、http的get實現

復制代碼 代碼如下:

$ch = curl_init("http://www.domain.com/api/index.php?test=1") ; 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true) ; // 獲取數據返回 
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true) ; // 在啟用 CURLOPT_RETURNTRANSFER 時候將獲取數據返回 
echo $output = curl_exec($ch) ; 

/* 寫入文件 */ 
$fh = fopen("out.html", 'w') ; 
fwrite($fh, $output) ; 
fclose($fh) ;  


2、http的post實現

復制代碼 代碼如下:


<?php 
$url = 'http://www.domain.com/api/' ; 
$fields = array( 
               'lname'=>'justcoding' , 
               'fname'=>'phplover' , 
               'title'=>'myapi', 
               'age'=>'27' , 
               'email'=>'[email protected]' , 
               'phone'=>'1353777303' 
              ); 
//$post_data = implode('&',$fields); 

 

注意:post請求的參數要用get方式那樣連接起來,作為字符串傳遞:
如:$params = 'userId='.$this->user_id.'&auth='.$this->auth.'&sig='.$this->sig

還有跨平臺的請求,curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 使用自動跳轉 (很重要)

//open connection 
$ch = curl_init() ; 
//set the url, number of POST vars, POST data 
curl_setopt($ch, CURLOPT_URL,$url) ; 
curl_setopt($ch, CURLOPT_POST,count($fields)) ; // 啟用時會發送一個常規的POST請求,類型為:application/x-www-form-urlencoded,就像表單提交的一樣。 
curl_setopt($ch, CURLOPT_POSTFIELDS,$fields); // 在HTTP中的“POST”操作。如果要傳送一個文件,需要一個@開頭的文件名 

ob_start(); 
curl_exec($ch); 
$result = ob_get_contents() ; 
ob_end_clean(); 

echo $result; 

//close connection 
curl_close($ch) ; 

 

復制代碼 代碼如下:

<?php 

if($_GET['test']) 

     print_r($_GET); 


if($_POST) 

    print_r($_POST); 
}  


php的curl傳送cookie
 
兩種方式:
一種是自動:

復制代碼 代碼如下:

curl_setopt($curlHandle, CURLOPT_COOKIEJAR, 'cookie.txt '); //保存 
curl_setopt($curlHandle, CURLOPT_COOKIEFILE, 'cookie.txt '); //讀取 


這樣COOKIE會自動跟上去.
不過要分兩次,一是先訪問產生cookie,接著連結才能用cookie
例子:

復制代碼 代碼如下:

<?php    

function get_curlcuconent2($filename,$referer) 

   $cookie_jar = tempnam('./tmp','JSESSIONID'); 

   $ch = curl_init(); 
   curl_setopt($ch, CURLOPT_URL, $filename); 
   curl_setopt($ch, CURLOPT_HEADER, false); 
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

   //設置文件讀取并提交的cookie路徑 
   curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar); 
   $filecontent=curl_exec($ch); 
   curl_close($ch); 

   $ch = curl_init(); 
   $hostname ="www.domain.com"; 
   //$referer="http://www.domain.com/"; 
   curl_setopt($ch, CURLOPT_URL, $filename); 
   curl_setopt($ch, CURLOPT_REFERER, $referer); // 看這里,你也可以說你從google來 
   curl_setopt($ch, CURLOPT_USERAGENT, "www.domain.com"); 

   //$request = "JSESSIONID=abc6szw15ozvZ_PU9b-8r"; //設置POST參數 
   //curl_setopt($ch, CURLOPT_POSTFIELDS, $request);    
   // 上面這句,當然你可以說你是baidu,改掉這里的值就ok了,可以實現小偷的功能,$_SERVER['HTTP_USER_AGENT'] 
   //你也可以自己做個 spider 了,那么就偽裝這里的 CURLOPT_USERAGENT 吧 
   //如果你要把這個程序放到linux上用php -q執行那也要寫出具體的$_SERVER['HTTP_USER_AGENT'],偽造的也可以 
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
   curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar); 
   curl_setopt($ch, CURLOPT_HEADER, false);//設定是否輸出頁面內容 
   curl_setopt($ch, CURLOPT_GET, 1); // post,get 過去 

   $filecontent = curl_exec($ch); 
   preg_match_all("/charset=(.+?)[NULL\"\']/is",$filecontent, $charsetarray); 
   if(strtolower($charsetarray[1][0])=="utf-8") 
         $filecontent=iconv( 'utf-8', 'gb18030//IGNORE' , $filecontent); 
   curl_close($ch); 
   return $filecontent; 


?> 


一種自定義:

復制代碼 代碼如下:

$header[]= 'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, text/html, * '. '/* '; 
$header[]= 'Accept-Language: zh-cn '; 
$header[]= 'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727) '; 
$header[]= 'Host: '.$你的目標HOST; 
$header[]= 'Connection: Keep-Alive '; 
$header[]= 'Cookie: '.$你的COOKIE串; 

curl_setopt($curlHandel,CURLOPT_HTTPHEADER,$header); 

 

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色香视频在线 | 亚洲午夜大片 | 亚洲精品第一国产综合高清 | 99久久国语露脸精品国产 | 成人在线免费观看视频 | 97视频免费人人观看人人 | 国产精品午夜性视频网站 | 亚洲欧美优优色在线影院 | 免费视频专区一国产盗摄 | 9自拍视频在线观看 | 暖暖暖免费观看在线观看 | 无遮挡h肉动漫在线观看电车 | 小小水蜜桃视频高清在线播放 | 国产最新精品视频 | 欧美国产日韩1区俺去了 | 香蕉在线精品一区二区 | 亚洲一区二区精品视频 | 久久国产伦子伦精品 | 成人午夜影院在线观看 | 免费观看网站 | 特黄一级 | 亚洲AV永久无码精品老司机蜜桃 | 好男人影视社区www在线观看 | 91理论片午午伦夜理片久久 | 2020国产精品视频 | 二次元美女挤奶漫画 | free嫩白的12sex性自由 | 国产欧美曰韩一区二区三区 | 国产v日韩v欧美v精品专区 | 国产福利在线观看永久视频 | 四虎影音| 亚洲国产成人综合 | 五月天精品视频播放在线观看 | 初尝黑人巨大h文 | 成3d漫二区三区四区 | 石原莉奈被店长侵犯免费 | 午夜宅男影院 | 77成人影视| 粉嫩极品国产在线观看免费 | 四虎影视永久在线观看 | 亚洲国产精品一区二区首页 |