Ankündigung

Einklappen
Keine Ankündigung bisher.

json-php Parsing

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

  • json-php Parsing

    PHP-Code:
    <?php 
    $string 
    file_get_contents("http://www.projekt-endzeit.de/PlayerRanks.json");
    $json_a json_decode($stringtrue);

    echo 
    $json_a['76561197960372927'][ResourcesGathered];




    ?>
    Ich würde gerne die Json eines Plugins meines Gameservers Local Parsen. Jedoch bekomme ich keinen Output und weiß nicht wirklich woran dies liegt. Desweiteren würde ich gerne die Userliste durchgehen und die zwei besten Spieler mit "ResourcesGathered" auflisten lassen. Quasi als Top2 Liste das Name und ResourcesGathered angezeigt wird.

    Wäre um Hilfe sehr Dankbar!


  • #2
    Hallo,

    bist du sicher, dass dein JSON UTF-8 kodiert ist? Laut php.net arbeitet die Funktion nur mit UTF-8 kodierten Strings: http://de2.php.net/manual/en/function.json-decode.php

    Wie du prüfen kannst, ob dein String UTF-8 kodiert ist, findest du hier: http://floern.com/webscripting/is-ut...-8-pr%C3%BCfen

    Ansonsten mal ein

    PHP-Code:
    var_dump($json_a); 
    mache und sehen, ob überhaupt etwas in der Variablen steht.
    Viele Grüße

    Dirk

    Kommentar


    • #3
      Dreh dein error reporting hoch was soll RessourcesGathered sein? Sicher keine Konstante also achte auf Korrekte Syntax (Quotes) oder lies einfach die Fehlermeldungen bzw. ErrorLog und json_lasterror etc
      ​​​​​​.
      PHP.de Wissenssammlung | Debugging: Finde DEINE Fehler selbst! | mysql_* ist veraltet! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__ | Kein Support per PN

      Kommentar


      • #4
        Codierung war utf8 ohne Bom, hab jetzt mal zu utf8 Portiert aber nach wie vor keine Ausgabe.

        Json siehe Link

        Ich hätte es gern das Jeder Spieler verglichen wird und die zwei mit den meisten "ResourcesGathered" angezeigt werden.

        Kommentar


        • #5
          Hast du schon alles gemacht, was hier gesagt wurde? Denn bis jetzt beschreibst du nur, was du gerne hättest. Wenn du nicht weißt, warum ein Code nicht funktionert, dann betreibe Debugging. Schaue zu aller erst in das Error-Log. Ein vernünftiges Programmieren ohne Error-Log ist nicht möglich, das gehört dazu.

          Kommentar


          • #6
            PHP-Code:
            <?php

            error_reporting
            (E_ALL);
            ini_set('display_errors'1);


            ini_set('user_agent''PHP');
            $json file_get_contents("http://www.projekt-endzeit.de/PlayerRanks.json");
            $data json_decode($json);



            echo 
            "name: ".$data['PlayerRankData'];


            ?>
            Habe es mal abgeändert. Jetzt bekomme ich weder Fehlermeldung noch einen Output...

            Ich beneide jeden der wirklich Programmieren kann, meine nerven sind blank!
            Ich vermute das die Methode mit der Json nicht umgehen kann.

            Kommentar


            • #7
              PHP-Code:
              var_dump($json);
              var_dump($data); 
              actra.development - Zend Certified Engineer for PHP5 - actra-oss @ github

              Kommentar


              • #8
                Zitat von G.Schuster Beitrag anzeigen
                PHP-Code:
                var_dump($json);
                var_dump($data); 
                Damit Gibt er mir jetzt die gesammte Json aus wie kann ich aber einen einzelnen wert ausgeben?

                Kommentar


                • #9
                  Indem du nun den korrekten Objekt-Pfad in $data nachschaust.
                  actra.development - Zend Certified Engineer for PHP5 - actra-oss @ github

                  Kommentar


                  • #10
                    PHP-Code:
                    echo "name: ".$data['PlayerRankData[:0].76561197960372927[:0].Name'];
                    echo 
                    json_last_error(); // 4 (JSON_ERROR_SYNTAX)
                    echo json_last_error_msg(); // unexpected character 

                    Hätte doch so aussehen müssen oder`?

                    Kein Output, Error: 4Syntax error

                    Kommentar


                    • #11
                      Uiuiui...dir fehlen anscheinend jegliche Grundlagen.
                      Ich rate mal:
                      $data['PlayerRankData']['76561197960372927']['Name'];

                      Wobei du dir das schon schenken kannst, wenn das Json fehlerhaft ist.
                      Deswegen wäre der var_dump von $data interessant.
                      actra.development - Zend Certified Engineer for PHP5 - actra-oss @ github

                      Kommentar


                      • #12
                        Zitat von elaar Beitrag anzeigen
                        Codierung war utf8 ohne Bom, hab jetzt mal zu utf8 Portiert aber nach wie vor keine Ausgabe.

                        Json siehe Link
                        Kodierung war utf-8 mit BOM
                        Denn so funktioniert es, hat es zumindest, solange die Datei noch erreichbar war.

                        PHP-Code:
                        $json substr($json3);   // BOM entfernen

                        $data json_decode($jsontrue8,  JSON_BIGINT_AS_STRING);

                        foreach (
                        $data as $player) {
                            
                        var_dump($player);

                        Kommentar


                        • #13
                          Server ist gerade nicht erreichbar,
                          der DNS Eintrag ist zwar schon aktuell aber php ssl usw noch nicht aktiv...

                          Kommentar


                          • #14
                            Was hat das mit deinem eigentlichen Problem zu tun?
                            Ich habe dir aufgezeigt woran es lag, nämlich am BOM.

                            Für dein restliche´s Problem, dem Zugriff, solltest lernen, was Arrays sind, wie man darauf zugreift und wie man sie durchläuft, dass Lernen können wir dir nämlich nicht abnehmen.

                            Kommentar

                            Lädt...
                            X