来自 google 安全浏览 api 数组的回显结果

echo results from an google safe browsing api array

我知道这是一个基本问题,但我不知道如何真正做到这一点。我已经阅读了无数关于它的教程,但它们似乎不起作用。

var_dump($google_check);

returns 如下:

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];

问题是这个 returns 匹配和威胁的非法偏移,并且只有 echo 是单个字符 {

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

您收到的回复在 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'];

另请注意,当查看非数字数组键时,您需要用引号引起来(例如 $decoded['matches'] 而不是 $decoded[matches]).

下面是对 json

的快速解释

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