我正在尝试在重定向后在最终的URL中获取查询字符串。
https://example.com/oauth/auth?user=foo&password=bar
在我的浏览器中重定向到:
https://example.com/?secret=8273761838346
重定向后,我需要最终网址的 secret = {some number} 部分。
我使用file_get_contents,cURL甚至套接字方法在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和其他选项而没有进展。