2017-12-16 14 views
-2

JSONとPHPにはの問題があります。 CURLを使用してサイトのAPIを照会し、それに応答してJSONを取得しました。PHPとCURLを使用したJSONの解析

私はコマンドをvar_dump (json_decode ($ result));与えても、彼はそれをうまく印刷しません。 どこが間違っていますか?

PHP:

<?php 

$url = "https://vulners.com/api/v3/audit/audit/?os=redhat&version=7.1&package=redhat-release-server-7.2-9.el7.x86_64"; 


$cURL = curl_init(); 

curl_setopt($cURL, CURLOPT_URL, $url); 
curl_setopt($cURL, CURLOPT_HTTPGET, true); 
curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json', 
    'Accept: application/json' 
)); 
$result = curl_exec($cURL); 
var_dump(json_decode($result)); 
var_dump(json_decode($result, true)); 
curl_close($cURL); 

?>

JSON:非常によく

{ "result": "OK", "data": { "packages": { "redhat-release-server-7.2-9.el7.x86_64": { "RHSA-2017:3108": [ { "package": "redhat-release-server-7.2-9.el7.x86_64", "providedVersion": "0:7.2-9.el7", "bulletinVersion": "7.2-9.el7_2.3", "providedPackage": "redhat-release-server-7.2-9.el7.x86_64", "bulletinPackage": "redhat-release-server-7.2-9.el7_2.3.x86_64.rpm", "operator": "lt", "bulletinID": "RHSA-2017:3108", "cvelist": [], "fix": "sudo yum -y update redhat-release-server" } ], "RHSA-2017:1384": [ { "package": "redhat-release-server-7.2-9.el7.x86_64", "providedVersion": "0:7.2-9.el7", "bulletinVersion": "7.2-9.el7_2.2", "providedPackage": "redhat-release-server-7.2-9.el7.x86_64", "bulletinPackage": "redhat-release-server-7.2-9.el7_2.2.x86_64.rpm", "operator": "lt", "bulletinID": "RHSA-2017:1384", "cvelist": [], "fix": "sudo yum -y update redhat-release-server" } ] } }, "vulnerabilities": [ "RHSA-2017:3108", "RHSA-2017:1384" ], "reasons": [ { "package": "redhat-release-server-7.2-9.el7.x86_64", "providedVersion": "0:7.2-9.el7", "bulletinVersion": "7.2-9.el7_2.3", "providedPackage": "redhat-release-server-7.2-9.el7.x86_64", "bulletinPackage": "redhat-release-server-7.2-9.el7_2.3.x86_64.rpm", "operator": "lt", "bulletinID": "RHSA-2017:3108", "cvelist": [], "fix": "sudo yum -y update redhat-release-server" }, { "package": "redhat-release-server-7.2-9.el7.x86_64", "providedVersion": "0:7.2-9.el7", "bulletinVersion": "7.2-9.el7_2.2", "providedPackage": "redhat-release-server-7.2-9.el7.x86_64", "bulletinPackage": "redhat-release-server-7.2-9.el7_2.2.x86_64.rpm", "operator": "lt", "bulletinID": "RHSA-2017:1384", "cvelist": [], "fix": "sudo yum -y update redhat-release-server" } ], "cvss": { "score": 0.0, "vector": "NONE" }, "cvelist": [], "cumulativeFix": "sudo yum -y update redhat-release-server", "id": "WAIT4O6XKXKD4SF9KIRJFJ2DG0J47R3DI1Y42J661KCJ5D0N9DB7TLB1E36N5OQ34JDB0PG1MP893WHTFL60YGQ92RJ3FC4JX7SLZNTUU5DTD3GLFK5PQJ5T1NYGVIBT" } }int(1) int(1) 

:)

object(stdClass)#1 (5) { 
    ["a"] => int(1) 
    ["b"] => int(2) 
    ["c"] => int(3) 
    ["d"] => int(4) 
    ["e"] => int(5) 
} 

array(5) { 
    ["a"] => int(1) 
    ["b"] => int(2) 
    ["c"] => int(3) 
    ["d"] => int(4) 
    ["e"] => int(5) 
} 
+0

あなたは現在どのような問題に直面していますか?あなたはデータを持っています。 –

+1

"*彼はそれをうまく印刷しない*" ...?!? – IncredibleHat

答えて

0

int(1)documentation statesとしてcurl_execコマンドの実際の戻り値は次のとおりです。

成功した場合にTRUEを、失敗した場合にFALSEを返します。ただし、CURLOPT_RETURNTRANSFERオプションが設定されている場合は、成功した場合は結果を返し、失敗した場合はFALSEを返します。

したがって、あなたは、これが成功した場合に応答itselftを返す必要がありますので、 curl_setopt($cURL, CURLOPT_RETURNTRANSFER, true); を設定してみてください。

次に、var_dump(json_decode($result, true));を使用してかわいらしく印刷します。

関連する問題