1. 程式人生 > >php獲取請求url時響應的報頭資訊幾種方法

php獲取請求url時響應的報頭資訊幾種方法

    1、用file_get_contents或者fopen、file、readfile等函式讀取url的時候,會建立一個名 為$http_response_header的變數來儲存http響應的報頭.

    示例程式碼一:

  <?php
       $url = 'http://www.baidu.com';
       $html = file_get_contents($url);
       print_r($http_response_header);
    //輸出結果
       Array(
            [0] => HTTP/1.1 200 OK
            [1] => Date: Tue, 06 Nov 2012 08:51:01 GMT
            [2] => Server: BWS/1.0
            [3] => Content-Length: 9803
            [4] => Content-Type: text/html;charset=gbk
            [5] => Cache-Control: private
            [6] => Expires: Tue, 06 Nov 2012 08:51:01 GMT
            [7] => Set-Cookie: BAIDUID=6635735B51B28640F425F802C49340F2:FG=1; 
            expires=Tue, 06-Nov-42 08:51:01 GMT; path=/; domain=.baidu.com
            [8] => P3P: CP=" OTI DSP COR IVA OUR IND COM "
            [9] => Connection: Close
      )      
  ?>

    2、使用fopen等函式開啟的資料流資訊可以用 stream_get_meta_data來獲取。

示例程式碼二:

   <?php
     $fp = fopen($url, 'r');
     print_r(stream_get_meta_data($fp));
     fclose($fp);
//輸出結果
Array
(
    [wrapper_data] => Array
        (
            [0] => HTTP/1.1 200 OK
            [1] => Date: Tue, 06 Nov 2012 08:54:22 GMT
            [2] => Server: BWS/1.0
            [3] => Content-Length: 9803
            [4] => Content-Type: text/html;charset=gbk
            [5] => Cache-Control: private
            [6] => Expires: Tue, 06 Nov 2012 08:54:22 GMT
            [7] => Set-Cookie: BAIDUID=347578BCBD709F27925BDD8B05364A73:FG=1;
             expires=Tue, 06-Nov-42 08:54:22 GMT; path=/; domain=.baidu.com
            [8] => P3P: CP=" OTI DSP COR IVA OUR IND COM "
            [9] => Connection: Close
        )

    [wrapper_type] => http
    [stream_type] => tcp_socket
    [mode] => r
    [unread_bytes] => 0
    [seekable] => 
    [uri] => http://www.baidu.com
    [timed_out] => 
    [blocked] => 1
    [eof] => 
)
?>

    3、get_headers()也可以獲取請求url的響應報文。

示例程式碼三:

 <?php
print_r(get_headers($url));
Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Date: Tue, 06 Nov 2012 08:58:41 GMT
    [2] => Server: BWS/1.0
    [3] => Content-Length: 9803
    [4] => Content-Type: text/html;charset=gbk
    [5] => Cache-Control: private
    [6] => Expires: Tue, 06 Nov 2012 08:58:41 GMT
    [7] => Set-Cookie: BAIDUID=87B6F26EEC74F2B8F7FABA934DC6BB24:FG=1; 
    expires=Tue, 06-Nov-42 08:58:41 GMT; path=/; domain=.baidu.com
    [8] => P3P: CP=" OTI DSP COR IVA OUR IND COM "
    [9] => Connection: Close
)
?>

    4、php5中新增的引數context使這些函式更加靈活,通過它我們可以定製http請 求,甚至post資料。

相關推薦

php獲取請求url響應報頭資訊方法

    1、用file_get_contents或者fopen、file、readfile等函式讀取url的時候,會建立一個名 為$http_response_header的變數來儲存http響應的報頭.     示例程式碼一: <?php $url

php獲取客戶端真實ip地址的三方法

php獲取使用者(客戶端)真實IP地址的兩種方法 第一種方法,還算靠譜,本人以前一直用的是這個方法: function get_real_ip(){ $ip=false; if(!empty($_SERVER['HTTP_CL

使用JS準確獲取URL網址中引數的方法

        (新年第一天上班)今天就遇到這樣一個問題,簡單描述就是需要從URL中獲取所傳遞的引數。如果使用後臺語言我們都會有很多中方法來獲取,但是網站的中的所有資料都是通過AJAX進行傳遞的,

Android中實現延執行操作的方法

在Android開發中我們可能會有延時執行某個操作的需求,例如我們啟動應用的時候,一開始呈現的是一個引導頁面,過了兩三秒後,會自動跳轉到主介面。這就是一個延時操作。  下面是實現延時執行操作的幾種方法: 1.使用執行緒的休眠實現延時操作    new Thread() {

Android列印除錯資訊方法===>Log

Android程式設計的孩子就喜歡列印好多好多的除錯資訊,也沒辦法,誰讓咱們菜呢 1傳統java方法 System.out.println("===>start!");(1)看不懂?回家補你的JAVA去吧! (2)能用,但是不推薦,不信你看            

獲取JAVA[WEB]專案相關路徑的方法

在jsp和class檔案中呼叫的相對路徑不同。 在jsp裡,根目錄是WebRoot 在class檔案中,根目錄是WebRoot/WEB-INF/classes 當然你也可以用System.getProperty("user.dir")獲取你工程的絕對路徑。 另:在Jsp,Servlet,Java中詳細獲得路

iOS-延執行常見的方法

本節主要介紹幾種我們通常用到的實現延時的方法。 延時方法我們統一呼叫- (void)delayMethod - (void)delayMethod { NSLog(@"delayMethodEnd = %@",[NSThread currentT

頁面載入執行js的方法

第一種: [javascript] $(document).ready(function(){       alert("第一種方法。");   });   第二種: [javascript] $(function(){      alert("第二種方法。");  });   第三種

Handler記憶體洩露的分析和解決辦法以及實現延執行操作的方法

一.Handler記憶體洩露的分析和解決辦法在進行非同步操作時,我們經常會使用到Handler類。最常見的寫法如下。public class MainActivity extends Activity

Android延執行呼叫的方法(轉)

From: http://blog.sina.com.cn/s/blog_46726d2401015t8q.html 一、開啟新執行緒 new Thread(newRunnable() {    publicvoidrun()     {    Thread.sle

ios 中響應震動的方法

  最近在做微信的搖一搖功能,也算是很小的知識點,整理下,免得忘了: 方法有三: 一.繼承自UIWindow(已測試) - (void)motionBegan:(UIEventSubtype)motion withEvent:(UIEvent *)event { } -

php獲取請求返回頭資訊

很多時候需要獲取一個請求的返回頭資訊,在php中可以通過curl的方式獲取,還有更簡單的 php中有一個get_headers()函式就是專門用來做這個 的 <?php $url = 'http://www.example.com'; print_r(get_hea

PHP 獲取請求接口的IP地址

獲取ip 地址function GetIP(){ if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $cip = $_SERVER["HTTP_CLIENT_IP"]; } elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"]))

PHP CURL本地URL,一直處於 pending 狀態

php curl php pst 開啟 cgi end 成了 腳本 占用 原因是,自己本身提起curl的腳本,就一直占用著本地的 9000 端口。然後又去請求 9000 端口處理。這樣子就造成了死鎖 所以,本地如果需要調試此類問題的話,可以單獨為 curl 開啟一個新的端口

Java獲取此次請求URL以及服務器根路徑的方法

h+ clas string pan gets pps 內容 端口 index http://www.jb51.net/article/71693.htm ********************************************** 本文介紹了Java獲取此

file_get_contents遠端請求url,出現警告: php_network_getaddresses: getaddrinfo failed: Name or servicenot known

用file_get_contents請求資料時有時成功有時報錯,網上改伺服器配置什麼的看的不是很懂,直接改用curl請求了 curl程式碼: $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_HEADER

PHP獲取客戶端瀏覽以及作業系統資訊

                         

獲取請求URL地址:

引入的包: import javax.servlet.http.HttpServletRequest; 因為返回值是StringBuffer型別,可以使用轉換成字串型別: public String static getURL(HttpServletRequest 

【轉】PHP獲取重定向URL方法

有時候我們會在開發中,經常會遇到有URL 301或 302重定向的情況,這時候我們可能需要獲取重定向之後的url,下面我們介紹一下幾種獲取重定向url的方法: 1、用get_headers函式php自帶的get_headers函式可以獲取伺服器響應一個HTTP請求所傳送的所有標頭,我們可以嘗試用該函式實現。

PHP-模擬請求和操作響應

模擬請求 fsockopen <?php // 建立連線 $link = fsockopen('localhost', '80'); define('CRLF', "\r\n"); // 請求行 $request_data = 'GET /'.CRLF; // 請求頭 $request_data