2017-09-16 25 views
0

Ich versuche, den access_token Wert von einer Curl-Antwort zu bekommen. Der Schlüsselwert, der [0] ist, ergibt sich so, {"access_token":"430f8a7d4f721a9e51e3558689ff28ec592923d2","expires_in":3600,"token_type":"Bearer","scope":null}.PHP bekommen curl array Ergebnisse von innerhalb eines Schlüsselwertes

Allerdings brauche ich nur den verschachtelten Wert von access_token, die 430f8a7d4f721a9e51e3558689ff28ec592923d2 ist.

Der Ausgang wird diese wiedergegeben werden:

$cmd="curl -u testuser:123456 http://localhost/oauth2/server/token.php -d 'grant_type=client_credentials'"; 
exec($cmd,$result); 

echo '<pre>'; print_r($result[0]); echo '</pre>'; 

Wie dies zu tun gehen könnte?

Btw, nichts davon ist vertrauliche Daten. Ich experimentiere nur mit oauth2.

Antwort

1

Verwenden Sie die Funktion json_decode für die Ergebnisse.

<?php 
$json = '{"access_token":"430f8a7d4f721a9e51e3558689ff28ec592923d2","expires_in":3600,"token_type":"Bearer","scope":null}'; 

// Decode the JSON into an object 
$decodedJson = json_decode($json); 
$accessToken = $decodedJson->access_token; 
var_dump($decodedJson,$accessToken); 

// Decode the JSON into an array (note the true on the decode) 
$decodedJson = json_decode($json,true); 
$accessToken = $decodedJson['access_token']; 
var_dump($decodedJson,$accessToken); 
+0

Das ist großartig. Ich dachte nicht daran, den JSON zu dekodieren. Obwohl ich dein Snippet ausprobiert habe und es einfach das Sohn-Ergebnis verloren hat und das Ergebnis nicht codiert hat. Ich habe dies gereizt und es scheint, das Token gut zu bekommen: '$ json = $ result [0]; $ json = json_decode ($ json, true); echo $ json ['access_token']; ' – rniller

0

Codierung des JSON-Ergebnisses, findet die Teilmenge.

$json = $result[0]; 
$json = json_decode($json, true); 
echo $json['access_token']; 
Verwandte Themen