欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

php curl請求信息和返回信息設(shè)置代碼實例

 更新時間:2015年04月27日 10:09:18   投稿:junjie  
這篇文章主要介紹了php curl請求信息和返回信息設(shè)置代碼實例,本文直接給出代碼實例,需要的朋友可以參考下

在用curl抓取網(wǎng)頁內(nèi)容的時候,經(jīng)常要知道,網(wǎng)頁返回的請求頭信息,和請求的相關(guān)信息,特別是在請求過程中存在重定向的時候獲取請求返回頭信息對分析請求內(nèi)容很有幫助

下面就是一個請求中存在重定向的例子,我們的目的是要獲取最終實際請求的url地址

$url='http://www.appchina.com/market/r/489267/com.appshare.android.ilisten.vapk?c=aplus.direct&uid=gAJ9cQEu1TlyZxsXN-aB4RaanvFL6t6Bj-vj0rIBs&p=aplus.detail&m=redirect'; 
 
$ch=curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
//curl_setopt($ch, CURLOPT_POST, 1); 
//curl_setopt($ch, CURLOPT_POSTFIELDS, $params); 
curl_setopt($ch, CURLOPT_HEADER, 1);//返回response頭部信息 
curl_setopt($ch, CURLOPT_NOBODY, 1);//不返回response body內(nèi)容 
//curl_setopt($ch, CURLOPT_MAXREDIRS, 1);//設(shè)置請求最多重定向的次數(shù) 
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//不直接輸出response 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);//如果返回的response 頭部中存在Location值,就會遞歸請求 
$content=curl_exec($ch); 
$rinfo=curl_getinfo($ch); 
 
echo $content,"</br>"; 
echo "<hr>"; 
print_r($rinfo); 

下面是輸出的結(jié)果

HTTP/1.1 200 OKServer: nginxDate: Sat, 22 Dec 2012 06:17:44 GMTContent-Type: application/vnd.android.package-archiveConnection: closeLast-Modified: Mon, 03 Dec 2012 16:00:00 GMTExpires: Tue, 03 Dec 2013 16:00:00 GMTCache-Control: max-age=31536000Content-Length: 2142149
Array( [url] => http://www.d.appchina.com/McDonald/r/489267/com.appshare.android.ilisten.vapk?c=aplus.direct&uid=gAJ9cQEu1TlyZxsXN-aB4RaanvFL6t6Bj-vj0rIBs&p=aplus.detail&m=redirect [content_type] => application/vnd.android.package-archive [http_code] => 200 [header_size] => 289 [request_size] => 196 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.171621 [namelookup_time] => 0.135256 [connect_time] => 0.152913 [pretransfer_time] => 0.152916 [size_upload] => 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => 2142149 [upload_content_length] => 0 [starttransfer_time] => 0.171582 [redirect_time] => 0 [certinfo] => Array ( )) 

可以看到,經(jīng)過遞歸請求后最終得到一個200的response,但是這中方式不能得到最后一次請求的url,也就是最終實際請求的url,要想得到這個url就需要遞歸的分析每次請求返回的response

下面是我寫的一個獲取最后一次請求url的遞歸函數(shù)

$url='http://www.appchina.com/market/r/489267/com.appshare.android.ilisten.vapk?c=aplus.direct&uid=gAJ9cQEu1TlyZxsXN-aB4RaanvFL6t6Bj-vj0rIBs&p=aplus.detail&m=redirect'; 
[php] view plaincopy
$realUrl=getRedirectLocation($url); 
 
echo "</br>--->",$realUrl; 
 
function getRedirectLocation($url){ 
   
  $realUrl=$url; 
  echo $url,"</br>"; 
  $ch=curl_init(); 
  curl_setopt($ch, CURLOPT_URL, $url); 
  curl_setopt($ch, CURLOPT_HEADER, 1);curl_setopt($ch, CURLOPT_TIMEOUT, 3);//設(shè)置curl執(zhí)行時間不超過3秒 
  //curl_setopt($ch, CURLOPT_NOBODY, 1);//這行不能要,如果添上,那么在遇到302重定向的時候就會得不到真正的請求url 
  curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); 
  $content=curl_exec($ch); 
  //echo $content; 
  $rinfo=curl_getinfo($ch); 
  $matches=array(); 
  if(preg_match('/Location:\s+?(.+?)\s+?/', $content,$matches)){ 
    //echo $matches[1],"</br>"; 
    unset($content); 
    $realUrl=getRedirectLocation($matches[1]); 
  } 
  if(isset($content)){ 
    unset($content); 
  } 
  return $realUrl; 
} 

相關(guān)文章

  • 淺析php工廠模式

    淺析php工廠模式

    本文通過實例向大家展示了php設(shè)計模式中的工廠模式,工廠模式分為三種:簡單工廠、工廠方法、抽象工廠。想學(xué)習(xí)的小伙伴們千萬不要錯過。
    2014-11-11
  • ThinkPHP中redirect用法分析

    ThinkPHP中redirect用法分析

    這篇文章主要介紹了ThinkPHP中redirect用法,實例分析了redirect重定向的各種常見操作技巧,具有一定的實用價值,需要的朋友可以參考下
    2014-12-12
  • PHP實現(xiàn)頁面靜態(tài)化的超簡單方法

    PHP實現(xiàn)頁面靜態(tài)化的超簡單方法

    下面小編就為大家?guī)硪黄狿HP實現(xiàn)頁面靜態(tài)化的超簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • php實現(xiàn)的百度搜索某地天氣的小偷代碼

    php實現(xiàn)的百度搜索某地天氣的小偷代碼

    這篇文章主要介紹了php實現(xiàn)的百度搜索某地天氣的小偷代碼,有關(guān)php顯示天氣預(yù)報信息的方法,需要的朋友可以參考下
    2014-04-04
  • codeigniter框架The URI you submitted has disallowed characters錯誤解決方法

    codeigniter框架The URI you submitted has disallowed characters

    這篇文章主要介紹了codeigniter框架The URI you submitted has disallowed characters錯誤解決方法,需要的朋友可以參考下
    2014-05-05
  • php調(diào)用shell的方法

    php調(diào)用shell的方法

    這篇文章主要介紹了php調(diào)用shell的方法,包括相關(guān)的原理、注意事項及函數(shù)用法,需要的朋友可以參考下
    2014-11-11
  • PHP+Mysql+jQuery實現(xiàn)發(fā)布微博程序 php篇

    PHP+Mysql+jQuery實現(xiàn)發(fā)布微博程序 php篇

    這篇文章主要介紹了PHP+Mysql+jQuery實現(xiàn)發(fā)布微博程序,重要介紹后臺是如何處理前臺提交的數(shù)據(jù),并返回結(jié)果的,需要的朋友可以參考下
    2015-10-10
  • laravel 解決路由除了根目錄其他都404的問題

    laravel 解決路由除了根目錄其他都404的問題

    今天小編就為大家分享一篇laravel 解決路由除了根目錄其他都404的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • PHP Echo字符串的連接格式

    PHP Echo字符串的連接格式

    這篇文章主要介紹了PHP Echo字符串的連接格式 的相關(guān)資料,需要的朋友可以參考下
    2016-03-03
  • Yii擴展組件編寫方法實例分析

    Yii擴展組件編寫方法實例分析

    這篇文章主要介紹了Yii擴展組件編寫方法,實例分析了Yii框架下擴展組件的實現(xiàn)技巧,需要的朋友可以參考下
    2015-06-06

最新評論