2010-06-13 184 views
14

我需要執行get請求併發送頭文件。我可以用什麼來做到這一點?PHP GET請求,發送頭文件

我需要設置的主標題是瀏覽器之一。是否有捷徑可尋?

+1

你編寫PHP代碼來執行GET請求,還是你想使用您的瀏覽器(或其他)來模擬請求您的PHP頁面的不同用戶代理? – grossvogel 2010-06-13 14:58:44

+0

我正在編寫代碼來執行請求並將響應作爲字符串存儲。 – 2010-06-13 14:59:42

+0

您指的是什麼「瀏覽器」標題?你需要返回用戶代理字符串? – 2010-06-13 15:00:06

回答

29

如果您使用cURL,則可以使用curl_setopt ($handle, CURLOPT_USERAGENT, 'browser description')來定義請求的用戶代理標頭。

如果您使用file_get_contents,請查看手冊頁上的例子的這個調整對file_get_contents

// Create a stream 
$opts = array(
    'http'=>array(
    'method'=>"GET", 
    'header'=>"Accept-language: en\r\n" . 
       "Cookie: foo=bar\r\n" . 
       "User-agent: BROWSER-DESCRIPTION-HERE\r\n" 
) 
); 

$context = stream_context_create($opts); 

// Open the file using the HTTP headers set above 
$file = file_get_contents('http://www.example.com/', false, $context); 
+0

謝謝解決:) – 2010-06-13 15:10:14

+0

感謝您的支持!工作完美。 – jones 2017-03-02 14:34:50

+0

我可以對此進行HTTPS請求嗎? – 2017-10-17 11:28:20

-2

您可以使用該header功能,例如:

header('Location: http://www.example.com?var=some_value'); 

需要注意的是:)

記住頭(必須調用 發送任何實際輸出之前, 可以使用普通的HTML標籤,文件中的空行 ,也可以使用PHP。在調用header()之前,包含()或require()函數或 另一個文件訪問函數,並且有 空格或空行輸出 是一個 非常常見的錯誤。使用單個 PHP/HTML文件時存在相同的 問題。

+0

我需要將來自請求的響應存儲到字符串中進行處理,所以我不能使用這個方法 – 2010-06-13 14:59:00

+0

@詹姆斯傑弗裏:我不明白你的意思,你可以更具體或增加更多的細節問題?謝謝 – Sarfraz 2010-06-13 15:00:39

+0

你想使用AJAX嗎?或者用Javascript訪問PHP變量? – 2010-06-13 15:03:30

1

如果你請求一個頁面,使用cURL

爲了設置的標頭(在這種情況下,在HTTP請求中User-Agent頭,你可以使用這個語法:

<?php 
$curl_h = curl_init('http://www.example.com/'); 

curl_setopt($curl_h, CURLOPT_HTTPHEADER, 
    array(
     'User-Agent: NoBrowser v0.1 beta', 
    ) 
); 

# do not output, but store to variable 
curl_setopt($curl_h, CURLOPT_RETURNTRANSFER, true); 

$response = curl_exec($curl_h);