1

在问这个问题之前,我在网站上进行了搜索,但我相信以前没有人问过这个问题;抱歉,如果它已经存在并且我错过了找到它。

我想我想要实现的是有点“奇怪”?

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

但是,请考虑这种情况:我从中获取数据的网站/页面正在向我发送 Location 标头,并且生成的重定向还有另一个“Location”标头。这是随机的,一些重定向会在 2 次重定向后给我预期的文件,其他重定向会在 4 次左右之后给我预期的文件。

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

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

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

抱歉,如果我不够清楚,我已尽力解释我想做什么;只是情况有点难以形容。

4

1 回答 1

2

你在寻找这样的东西吗?

$last_url = curl_getinfo($ch, CURLINFO_EFFECTIVE_URL);

curl_getinfo()你可以在这里找到文档http://www.php.net/manual/en/function.curl-getinfo.php

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

于 2013-01-14T15:53:54.440 回答