Ankündigung

Einklappen
Keine Ankündigung bisher.

Parse von Gamedig Out

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Parse von Gamedig Out

    Nabend zusammen,

    ich möchte gerne aus einem Gameserver Query welchen ich als Datei Export vorliegen habe per PHP 2 Werte darstellen. D.h. diese müsste ich auslesen und möchte die auch per PHP direkt wieder ausgeben.

    Folgenden String habe ich dazu eingelesen:

    Code:
    {"name":"V+","map":"V+","password":false,"raw":{"protocol":17,"folder":"valheim","game":"","appId":892970,"numplayers":4,"numbots":0,"listentype":"d","environment":"l","secure":0,"version":"1.0.0.0","steamid":"90143730004005890",
    "tags":"0.147.3"},"maxplayers":20,"players":[{"name":"","raw":{}},{"name":"","raw":{}},{"name":"","raw":{}},{"name":"","raw":{}}],"bots":[],"connect":"wallhalla.valheimserver.de:2456","ping":44}
    Hier habe ich mittels PHP es bereits geschafft den Ping "44" zu extrahieren. Aber ich möchte gerne auch "numplayer" also davon die "4" ausgeben.

    PHP-Code:
    <?php
    $file 
    file_get_contents("out.json");
    $json_decoded json_decode($file);
    echo 
    $json_decoded->ping;
    ?>
    Kann mir hier jemand weiterhelfen

    Danke und beste Grüße

  • #2
    Wenn du das als Array ausgeben lässt, zweiter Parameter auf true setzen,
    dann
    PHP-Code:
    $array json_decode($filetrue);

    echo 
    $array['raw']['numplayers']; 
    Du kannst dir das Array mit print_r auch komplett ausgeben lassen um die Dimensionen anzu

    Kommentar


    • #3
      Du brauchst nicht unbedingt ein Array um zugreifen zu können. Du solltest jedoch dein $json_decoded so ausgeben, das die Objektstruktur gut erkennbar ist. Dafür ist var_export() am besten geeignet. Ab PHP7 werden auch stdClass-Objekte reproduzierbar dargestellt. Heist im Klartext, du kannst die Ausgabe per Copy und Paste übernehmen und als PHP-Quellcode nutzen (z.B. im CodeRunner von VS Code, einen der zahlreichen PHP-Online-Tools oder auch hier im Forum-Editor). Hab das mal für dich gemacht:

      PHP-Code:
      $json_decoded = (object) array(
         
      'name' => 'V+',
         
      'map' => 'V+',
         
      'password' => false,
         
      'raw' =>
        (object) array(
           
      'protocol' => 17,
           
      'folder' => 'valheim',
           
      'game' => '',
           
      'appId' => 892970,
           
      'numplayers' => 4,
           
      'numbots' => 0,
           
      'listentype' => 'd',
           
      'environment' => 'l',
           
      'secure' => 0,
           
      'version' => '1.0.0.0',
           
      'steamid' => '90143730004005890',
           
      'tags' => '0.147.3',
        ),
         
      'maxplayers' => 20,
         
      'players' =>
        array (
          
      =>
          (object) array(
             
      'name' => '',
             
      'raw' =>
            (object) array(
            ),
          ),
          
      =>
          (object) array(
             
      'name' => '',
             
      'raw' =>
            (object) array(
            ),
          ),
          
      =>
          (object) array(
             
      'name' => '',
             
      'raw' =>
            (object) array(
            ),
          ),
          
      =>
          (object) array(
             
      'name' => '',
             
      'raw' =>
            (object) array(
            ),
          ),
        ),
         
      'bots' =>
        array (
        ),
         
      'connect' => 'wallhalla.valheimserver.de:2456',
         
      'ping' => 44,
      ) ; 
      Der Zugriff auf numplayers erfolgt nun einfach mit der Objektnotation $json_decoded->raw->numplayers. Wie auf weitere Elemente zugegriffen werden kann solltest du aus der Analogie erkennen.

      Kommentar

      Lädt...
      X