PHP - 重定向后如何从最终URL获取查询字符串?

时间:2013-03-01 16:18:17

标签: php redirect curl https

我正在尝试在重定向后在最终的URL中获取查询字符串。

https://example.com/oauth/auth?user=foo&password=bar

在我的浏览器中重定向到:

https://example.com/?secret=8273761838346 

重定向后,我需要最终网址的 secret = {some number} 部分。

我使用file_get_contentscURL甚至套接字方法在PHP中尝试过(并且失败了)。 cURL使用原始URL返回CURLINFO,而不是最终的URL。 file_get_contents $ http_response_header不包含最终的URL。

我已尝试过对您在cURL调用中设置的选项的变体,遵循SO和Google搜索中提供的大量示例,但这些都没有奏效。返回的URL始终是原始URL,而不是最终URL。

有没有人遇到过这种情况,你是如何解决这个问题的?这可能是一个愚蠢的问题,但https可能是问题吗?

@str,这是使用cURL的许多版本之一,但在重定向后没有产生最终的URL:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);
$header = curl_getinfo($ch);
var_dump($response);
var_dump($header);

我也试过切换HEADER,FOLLOWLOCATION,RETURNTRANSFER,AUTOREFERER和其他选项而没有进展。

0 个答案:

没有答案