2012-07-07 94 views
-1

我有一个URL http://www.example.com?auth_key=VVAf3spUN3ZETRH0kVPg1,当我正常打开这个网址,或者做头的位置用PHP它重定向我相同的URL,但与附加给它一个更$_GET值成为此网址响应使用PHP(卷曲)

http://www.example.com?auth_key=VVAf3spUN3ZETRH0kVPg1&&auth_token=OTdZN36QbPNo,然后我使用$_GET['auth_token']访问它的值。

有什么办法可以使用cURL或PHP中的任何其他方法向第一个URL发出请求,然后获取$_GET['auth_token']值作为响应。

+0

你有没有试过用卷曲来做呢?如果不是重定向的url,它会返回什么? (另外:显示你当前的代码。) – mario 2012-07-07 14:37:36

+0

它返回相同的网址 – 2012-07-07 14:40:14

+0

你需要详细说明一下。你的auth脚本是?它依赖于会话cookie等吗? – mario 2012-07-07 14:43:37

回答

0

使用cURL与CURLOPT_RETURNTRANSFER,您可以将CURLOPT_FOLLOWLOCATION设置为true,但如果启用safe_modeopen_basedir,则不会。不过,在相同的手册页面上,您可以找到一个function来克服此问题。使用CURLOPT_HEADER,您应该在输出字符串中看到重定向标头Location: newURL。您可以从中提取您的参数,例如像这样:

list($dummy, $location) = explode(':', $location_line, 2); 
$parts = parse_url(trim($location)); 
if (isset($parts['query'])) { 
    parse_str($parts['query'], $param_map); 
    if (isset($param_map['auth_token'])) { 
     ... 
+0

如果你不介意你能不能展示一个小例子......虽然我也尝试从我身边 – 2012-07-07 14:54:46

+0

@AmanVirk:手册中有很多例子。 CURL不是一个难题。设置你的测试并调整它直到它工作。 – 2012-07-07 15:00:54

+0

@AmanVirk如果你被卡住了,你当然可以问,当然 – 2012-07-07 16:12:17