Эхо-результаты из массива API безопасного просмотра Google

Я знаю, что это основной вопрос, но я не могу понять, как на самом деле это сделать. Я прочитал бесчисленные учебники об этом, но, похоже, они не работают.

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

Проблема в том, что это возвращает недопустимое смещение для совпадений и угроз, и только эхо - один символ {

Что я делаю неправильно? Как отобразить результаты из этого массива, не выгружая весь массив?

1 ответ

Решение

Ответ, который вы получили, находится в 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['совпадения]] вместо $ decoded [совпадения]).

Вот краткое объяснение JSON

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

Другие вопросы по тегам