2013-01-14 23 views
1

在問這個問題之前,我在網站上做了一個搜索,但我相信這個問題以前沒有問過;道歉,如果它已經和我錯過了發現它。PHP Curl中最後一個位置的值是什麼?

我想要實現的是一個有點'奇怪',我猜?

因此,舉個例子,我將POST'ing(或GET'ing)數據傳遞給一個頁面,該頁面返回響應以及我希望它跟隨的標題中的'位置'。在大多數情況下,這是沒有問題的,因爲我可以從頭文件中獲取「位置」值,然後按照它。

但是,請考慮這種情況: 我從中獲取數據的網站/頁面向我發送位置標題,並且生成的重定向還有另一個「位置」標題。這是隨機的,一些重定向會在2次重定向後給我預期的文件,另外一些則在4次左右之後給出。

我絕對需要記錄發送給我的最近(最後一個)「位置」值。我怎麼做?我目前已將PHP Curl的Follow Location設置爲'on',因此它會自動跟隨任何/所有位置,而無需我介入。既然它這樣做,我如何獲取它所跟隨的最後一個位置的值?

例如,我使用php curl發佈數據到網站A.來自網站A的回覆包含一個'位置'重定向到網站B的PHP Curl。網站B將「位置」重定向到網站C,PHP Curl會自動跟隨它。網站C然後有一個'位置'重定向到網站D. PHP Curl會自動跟隨它,就像以前一樣。網站D,然後,給我發送我想下載的實際文件。

由於PHP Curl會自動跟蹤「位置」,因此如何獲取最後的位置值?在上面的例子中,我將如何獲取網站C中的「位置」值,這是到達網站D之前的最後一個,即最終目的地?如果我還不夠清楚,我會盡我所能解釋我想做什麼;只是把這些情況放在文字上有點棘手。

+0

你正在制定一個問題的良好開端! – EaterOfCode

回答

2

你是否在尋找類似的東西?

$last_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL); 

你可以找到curl_getinfo()這裏http://www.php.net/manual/en/function.curl-getinfo.php

當我讀到你的問題第二次我的答案很可能不是最終的解決方案的文檔,但你可以從最後一個位置獲取HTTP頭信息和抓住HTTP_REFERER。我沒有這方面的例子,但這可能是一種您將獲得所需信息的方式。

+0

但是,如果有多個重定向,那麼這隻會捕獲前一個URL?所以'A'到'B'到'C'到'D',這種技術只會得到'C'? –

+1

這個問題也許是最好的辦法,只需關閉跟蹤位置,並手動捲曲新頁面,同時記錄每個URL:http://stackoverflow.com/questions/6129000/curl-follow-location-but-only-get- header-of-the-new-location –

+0

@SSHThis你所描述的方法是這樣做的一個途徑,但是在我不知道有多少重定向的情況下,這將會非常低效。 curl_getinfo是我正在尋找的 – Lifetalk

相關問題