使用PHP Curl提取结果

时间:2012-10-10 10:46:33

标签: php curl

我正在使用PHP curl从URL获取Oauth令牌:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      'Authorization: ' . oauth_headers($consumer_key, $consumer_secret, $token, $token_secret, $verifier)));curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

https://www.yammer.com/oauth/request_token

然后,我通过以下方式得到了答复:

输出

-------
HTTP/1.1 200 OK
Server: nginx
Date: Wed, 10 Oct 2012 10:32:47 GMT
.........
.........

oauth_token=6y33AOcKOJVRVRggumfa9Q&oauth_token_secret=usjLakBRQh3Cq4rTWT1aJe9NVo7XKiATYIWvvVovI&oauth_callback_confirmed=true

如何从结果中提取oauth_token_secretoauth_token

2 个答案:

答案 0 :(得分:1)

您应该使用parse_str()

CURLOPT_HEADER更改为false,然后:

$result = curl_exec($ch);
$string = parse_str($result);
echo $oauth_token_secret;
echo '<br />--------<br />';
echo $oauth_token;

答案 1 :(得分:0)

如果这是你得到的答案,你可能希望得到oauth -... sting,它将在双换行符之后(“\ n”)

那么你可以这样做:

parse_str(substr($s, strpos($s, "\n\n"));
echo $oauth_token_secret;
echo $oauth_token;

您也可以尝试这样来查看解析的内容:

parse_str(substr($s, strpos($s, "\n\n"), $test);
var_dump($test);