Как правильно парсить данные из json?

Планировщик задач посылает запрос на получение ip:port и получает данные online_p и max из JSON затем записывает в конфиг...

Крон выдает такую ошибку и ничего не записывает, может кто подскажет в чем дело и где я допустил ошибку? Пол дня мучаюсь, извиняюсь за мой ломанный php язык...

Notice: Undefined index: play.mcraft.pw:19132 in /var/www/u0888407/data/www/test.mcraft.pw/cron.php on line 40

КОНФИГ

  'servers' => 
  array (
    0 => 
    array (
      'name' => 'TEST',
      'ip' => 'localhost',
      'port' => '19132',
      'password' => '123365',
      'totalPlayers' => 0,  << max 
      'onlinePlayers' => 0,  << online_p
      'showMonitoring' => true,
    ),
  ),

API JSON

<?php
/*

     * MCPEServerPingAPI written by GenesisMiuss

     * Version: 1.0.0

     * Website: https://miuss.org

     * GitHub: https://github.com/miuss/mcapi-pe

*/

header('Content-type:text/json');

$servers = $_GET['ip'];
$port = $_GET['port'];

require_once 'ApiQuery.php';

$json = array(
    'status' => 'success',
    'online' => false,
    'servers' => array(
        'ip' => $servers,
        'port' => $port
    ),
    'motd' => null,
    'version' => array(
        'version' => null,
        'software' => null,
        'plugins' => null
    ),
    'players' => array(
        'online_p' => 0,
        'max' => 0,
    )
);

if ($Info = $Query->GetInfo()) {
    if($Info['GameName']=='MINECRAFTPE'){
        $json = array(
            'status' => 'success',
            'online' => true,

            'servers' => array(
                'ip' => $servers,
                'port' => $port
            ),

            'motd' => $Info['HostName'],

            'version' => array(
                'version' => $Info['Version'],
                'software' => $Info['Software'],
                'plugins' => $Info['Plugins']
            ),

            'players' => array(
                'online_p' => $Info['Players'],
                'max' => $Info['MaxPlayers']
            )
        );
    }
}

echo json_encode($json, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT);
?>
<spoiler title="CRON"><code lang="php">
$serversData = [];
foreach ($config['servers'] as $server) {
    $serversData[] = $server['ip'] . '&port=' . $server['port'];
}
$serversData = implode(',', $serversData);

// Если у вас MCPE сервер, замените ниже mc на mcpe
$url = 'https://localhost/?ip=' . $serversData;

$response = @file_get_contents($url);
if ($response) {
    $response = json_decode($response, true);

    foreach ($config['servers'] as &$server) {
        $rData = $response[$server['ip']. '&port=' .$server['port']];
        if ($rData['status'] === true) {
            $server['onlinePlayers'] = $rData['players']['online_p'];
            $server['totalPlayers']  = $rData['players']['max'];
        } else {
            $server['onlinePlayers'] = 0;
            $server['totalPlayers']  = 0;
        }
    }

    savecfg();
}

Тобиш по порядку: Крон выполняет задачу затем проверяет какой сервер выбирать где включена функция true затем эти же данные он  выбирает из API путём json и записывает в конфиг на количество онлайн игроков, но похоже что я допустил где-то ошибку не пойму где! 

Ответы (0 шт):