来自谷歌安全浏览api数组的回声结果

时间:2016-12-21 01:45:29

标签: php arrays json decode safe-browsing

我知道这是一个基本问题,但我无法弄清楚如何实际做到这一点。我已经阅读了无数关于它的教程,但它们似乎无法正常工作。

var_dump($google_check);

返回以下内容:

string(488) "{
  "matches": [
    {
      "threatType": "MALWARE",
      "platformType": "LINUX",
      "threat": {
        "url": "http://malware.testing.google.test/testing/malware/"
      },
      "cacheDuration": "300s",
      "threatEntryType": "URL"
    },
    {
      "threatType": "MALWARE",
      "platformType": "LINUX",
      "threat": {
        "url": "http://malware.testing.google.test/testing/malware/"
      },
      "cacheDuration": "300s",
      "threatEntryType": "URL"
    } 
  ]
} 
"

我想回显数组的结果,所以像

echo $google_check[0][matches][threat];
echo $google_check[1][matches][threat];

问题是这会在匹配和威胁上返回非法偏移,并且只有echo是单个字符{

我做错了什么?如何在不转储整个数组的情况下回显此数组的结果?

1 个答案:

答案 0 :(得分:3)

您收到的回复是在json中,因此您需要首先对响应进行json_decode。

$decoded = json_decode($google_check, true);

然后你可以像数组一样访问它

echo $decoded['matches'][0]['threat'];
echo $decoded['matches'][1]['threat'];

如果你想要url值,你需要像这样做。

echo $decoded['matches'][0]['threat']['url'];
echo $decoded['matches'][1]['threat']['url'];

另请注意,在查看数字键不是数字时,您需要用引号括起来(例如$解码['匹配']而不是$ decode [匹配] )。

这里有关于json的快速解释

https://www.tutorialspoint.com/json/json_php_example.htm