2013-11-21 42 views
3

我的代碼給我HTTP狀態代碼302,當我訪問谷歌,但我與Firefox瀏覽器訪問並檢查與螢火蟲的狀態,有狀態爲200得到正確的HTTP狀態代碼的PHP

這裏是我的代碼:

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch); 

我也試過get_headers,但它給了我301個狀態

get_headers($url); 

編輯:結果低於

array (size=26) 
    'url' => string 'https://www.google.com.cy/?gws_rd=cr&ei=SIeOUo7bGuKH0AWO14CYDQ' (length=62) 
    'content_type' => string 'text/html; charset=UTF-8' (length=24) 
    'http_code' => int 302 
    'header_size' => int 1673 
    'request_size' => int 317 
    'filetime' => int -1 
    'ssl_verify_result' => int 0 
    'redirect_count' => int 2 
    'total_time' => float 0.561 
    'namelookup_time' => float 0 
    'connect_time' => float 0.078 
    'pretransfer_time' => float 0 
    'size_upload' => float 0 
    'size_download' => float 0 
    'speed_download' => float 0 
    'speed_upload' => float 0 
    'download_content_length' => float 0 
    'upload_content_length' => float 0 
    'starttransfer_time' => float 0 
    'redirect_time' => float 0.405 
    'certinfo' => 
    array (size=0) 
     empty 
    'primary_ip' => string '173.194.112.247' (length=15) 
    'primary_port' => int 443 
    'local_ip' => string '192.168.2.3' (length=11) 
    'local_port' => int 55015 
    'redirect_url' => string '' (length=0) 
+1

這些標題是否與您的cURL請求或您的頁面輸出有關? – Scuzzy

+0

@Scuzzy我不明白你的問題..我向http.com發出http請求,它給了我這個http狀態碼。 – biox

回答

1

啊!谷歌正在通過GEO-IP或類似軟件定位你,並將你重定向到你的本地谷歌鏡像。

請參見:https://webapps.stackexchange.com/questions/46591/what-does-gws-rd-cr-in-the-url-indicate

所以他們要重定向你的302代碼是正確的。

嘗試使用網址:https://www.google.com/ncr (ncr代表無國家重定向),並看看你如何去。

+0

即使沒有國家重定向我得到相同的狀態代碼..但我用一個在線的PHP編譯器和我的代碼返回200狀態代碼。所以問題是我的國家:)謝謝你的努力..我會考慮成功的302狀態。 – biox

3

您使用Google的哪個網址?

我用你的代碼上面,設置:

$url = 'http://www.google.com'; 

並獲得在捲曲信息200響應。

的完整代碼我正在與測試:

奇怪 - 我使用:

$url = 'http://www.google.com'; 

$ch = curl_init($url); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0"); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE); 
curl_exec($ch); 
$info = curl_getinfo($ch); 
curl_close($ch); 

var_dump($info); 

的的var_dump輸出I接收返回:

陣列(26){[「URL 「] => string(61)」https://www.google.co.uk/?gws_rd=cr&ei=fIaOUsflOqnG0QXy74DYDg「[」content_type「] => string(24)」text/html; charset = UTF-8「[」http_code「] => int(200) [」header_size「 ] => int(2462)[「request_size」] => int(493)[「filetime」] => int(-1)[「ssl_verify_result」] => int(0)[「redirect_co (float)(0.011754)[「pretransfer_time」] =「float」(0.226363)[「namelookup_time」] => float(7.1E-5)[「connect_time」] => float =>浮點型(0.082954)[「size_upload」] =>浮點型(0)[「size_download」] =>浮點型(119772)[「speed_download」] =>浮點型(418252)[「speed_upload」] = [「download_content_length」] => float(262)[「upload_content_length」] => float(0)[「starttransfer_time」] => float(0.156201)[「redirect_time」] => float(0.076769)[「certinfo」] = > array(0){} [「primary_ip」] => string(14)「173.194.34.183」[「primary_port」] => int(443)[「local_ip」] => string(12)「192.168.0.15」 [「local_port」] => int(54606)[「redirect_url」] => string(0)「」}

+0

我使用相同的網址 – biox

+0

我添加了我的結果 – biox

+0

請參閱下面的修訂答案(根據您的結果)。 – steve