最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php curl請求信息和返回信息設置代碼實例

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

在用curl抓取網頁內容的時候,經常要知道,網頁返回的請求頭信息,和請求的相關信息,特別是在請求過程中存在重定向的時候獲取請求返回頭信息對分析請求內容很有幫助

下面就是一個請求中存在重定向的例子,我們的目的是要獲取最終實際請求的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內容 
//curl_setopt($ch, CURLOPT_MAXREDIRS, 1);//設置請求最多重定向的次數 
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); 

下面是輸出的結果

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 ( )) 

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

下面是我寫的一個獲取最后一次請求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'; 
[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);//設置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; 
} 

相關文章

  • php設計模式之職責鏈模式定義與用法經典示例

    php設計模式之職責鏈模式定義與用法經典示例

    這篇文章主要介紹了php設計模式之職責鏈模式定義與用法,結合完整實例形式詳細分析了php職責鏈模式的概念、原理、定義與使用方法,注釋中包含詳細的說明,需要的朋友可以參考下
    2019-09-09
  • Zend Framework動作助手Redirector用法實例詳解

    Zend Framework動作助手Redirector用法實例詳解

    這篇文章主要介紹了Zend Framework動作助手Redirector用法,結合實例形式詳細分析了轉向器Redirector的功能,使用方法與相關注意事項,需要的朋友可以參考下
    2016-03-03
  • 掌握Laravel框架中容器的管理依賴實現松耦合

    掌握Laravel框架中容器的管理依賴實現松耦合

    這篇文章主要為大家介紹了掌握Laravel框架中容器管理依賴實現松耦合,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-10-10
  • 比較好用的PHP防注入漏洞過濾函數代碼

    比較好用的PHP防注入漏洞過濾函數代碼

    PHP整站防注入程序,需要在公共文件中require_once本文件,因為現在網站被注入攻擊現象很嚴重,所以推薦大家使用
    2012-04-04
  • YII模塊實現綁定二級域名的方法

    YII模塊實現綁定二級域名的方法

    這篇文章主要介紹了YII模塊實現綁定二級域名的方法,需要的朋友可以參考下
    2014-07-07
  • Laravel 5框架學習之向視圖傳送數據

    Laravel 5框架學習之向視圖傳送數據

    本文向大家展示的是Laravel5框架學習系列的第三篇文章,給大家講解的是如何向視圖傳送數據,從無到有,十分細致,有需要的小伙伴可以參考下。
    2015-04-04
  • php批量刪除操作(數據訪問)

    php批量刪除操作(數據訪問)

    這篇文章主要為大家詳細介紹了php批量刪除操作,批量刪除頁面和.除處理界面,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • ThinkPHP處理Ajax返回的方法

    ThinkPHP處理Ajax返回的方法

    這篇文章主要介紹了ThinkPHP處理Ajax返回的方法,簡單講述了在ThinkPHP中Ajax的用法及對應的處理Ajax返回值的方法,具有不錯的實用價值,需要的朋友可以參考下
    2014-11-11
  • 解決Laravel5.5下的toArray問題

    解決Laravel5.5下的toArray問題

    今天小編就為大家分享一篇解決Laravel5.5下的toArray問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • yii2利用自帶UploadedFile實現上傳圖片的示例

    yii2利用自帶UploadedFile實現上傳圖片的示例

    本篇文章主要介紹了yii2利用自帶UploadedFile實現上傳圖片的示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02

最新評論

大洼县| 礼泉县| 盖州市| 汉川市| 望谟县| 苍梧县| 三穗县| 拜泉县| 敦煌市| 大荔县| 黔江区| 五峰| 汕头市| 罗山县| 韩城市| 兖州市| 略阳县| 高尔夫| 平利县| 江安县| 清苑县| 基隆市| 醴陵市| 张北县| 泾川县| 灵宝市| 宜黄县| 塔河县| 买车| 昌平区| 肥城市| 舞钢市| 黑山县| 建平县| 淮安市| 龙泉市| 长垣县| 澜沧| 永靖县| 永安市| 红安县|