PHP Curl中最后一个位置的值?

PHP Curl中最后一个位置的值?,php,curl,Php,Curl,在问这个问题之前,我在网站上搜索了一下,但我相信这是以前没有人问过的;如果已经找到了,我会道歉,我没有找到 我想我想要达到的是有点“怪异”吧 例如,我正在将数据发布(或从中获取)到一个页面,该页面返回响应以及我希望它遵循的标题中的“位置”。在大多数情况下,这不会有问题,因为我可以从标题中获取“Location”值,然后跟随它 然而,考虑一下这种情况: 我从中获取数据的网站/页面正在向我发送一个位置标头,由此产生的重定向还有另一个“位置”标头。这是随机的,一些重定向会在2个重定向后给我预期的文件,

在问这个问题之前,我在网站上搜索了一下,但我相信这是以前没有人问过的;如果已经找到了,我会道歉,我没有找到

我想我想要达到的是有点“怪异”吧

例如,我正在将数据发布(或从中获取)到一个页面,该页面返回响应以及我希望它遵循的标题中的“位置”。在大多数情况下,这不会有问题,因为我可以从标题中获取“Location”值,然后跟随它

然而,考虑一下这种情况: 我从中获取数据的网站/页面正在向我发送一个位置标头,由此产生的重定向还有另一个“位置”标头。这是随机的,一些重定向会在2个重定向后给我预期的文件,其他的在4个左右

我绝对需要记录发送给我的最新(最后一个)“位置”值。我该怎么做?我目前将PHP Curl的Follow Location设置为“on”,因此它会自动跟踪任何/所有位置,而无需我的干预。既然它这样做了,我如何获取它所遵循的最后一个位置的值

例如,我使用php curl将数据发布到网站。来自网站A的回复包含一个指向网站B的“位置”重定向。PHP Curl跟随它。网站B有一个“位置”重定向,再次重定向到网站C。PHP Curl会自动跟随它。然后,网站C有一个指向网站D的“位置”重定向。PHP Curl会自动跟随它,就像以前一样。然后,网站D向我发送了我想要下载的实际文件

由于PHP Curl自动跟随“位置”,如何获取最后一个位置值?在上面的示例中,我如何获取网站C中的“位置”值,这是到达最终目的地网站D之前的最后一个值


道歉如果我不够清楚,我已经尽力解释我想做什么;只是情况有点难以用语言表达。

你在找这样的东西吗

$last_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);
您可以在这里找到
curl\u getinfo()
上的文档


当我第二次阅读您的问题时,我的答案可能不是最终的解决方案,但您可以从最后一个位置获取HTTP头信息并获取
HTTP\u REFERER
。我没有这方面的例子,但这可能是您获得所需信息的一种方式。

您在制定问题方面有了一个良好的开端!但是如果有多个重定向,那么这只会捕获以前的URL,对吗?所以
A
B
C
D
,这种技术只会得到
C
?这个问题可能是最好的方法,只需关闭follow location,手动卷曲新页面,同时记录每个URL:@ssh您概述的方法是一种方法,但在我不知道有多少重定向的情况下,这将是相当有效的。curl_getinfo就是我要找的