Ankündigung

Einklappen
Keine Ankündigung bisher.

JSON URL in PHP Werte in Variable speichern

Einklappen

Neue Werbung 2019

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

  • JSON URL in PHP Werte in Variable speichern

    Hallo.

    Ich möchte aus einer JSON URL einzelne Werte in eine PHP Variable speichern
    Irgendwie komme ich nicht weiter, kann mir jemand einen Tipp geben.


    PHP-Code:
      <?php  
    // JSON auslesen    
    $url "https://api.corona-zahlen.org/districts/09362";  
    $json file_get_contents($url);  
    $data json_decode($jsontrue);

    // Datei mal  ausgeben    
    echo"<pre>";  
    var_dump($data);  
    echo
    "</pre>";    

    // Werte ausgeben    
    foreach ($data as $element) {  
    echo  
    $element["name"] ;
     echo 
    "<br>";  
    echo  
    $element["deaths"] ;
      }
     
    ?>
    Die JSON Datei lasse ich ausgeben.

    HTML-Code:
    array(2) {
      ["data"]=>
      array(1) {
        ["09362"]=>
        array(14) {
          ["ags"]=>
          string(5) "09362"
          ["name"]=>
          string(10) "Regensburg"
          ["county"]=>
          string(13) "SK Regensburg"
          ["state"]=>
          string(6) "Bayern"
          ["population"]=>
          int(153094)
          ["cases"]=>
          int(6935)
          ["deaths"]=>
          int(82)
          ["casesPerWeek"]=>
          int(40)
          ["deathsPerWeek"]=>
          int(0)
          ["stateAbbreviation"]=>
          string(2) "BY"
          ["recovered"]=>
          int(6733)
          ["weekIncidence"]=>
          float(26.127738513593)
          ["casesPer100k"]=>
          float(4529.8966647942)
          ["delta"]=>
          array(3) {
            ["cases"]=>
            int(5)
            ["deaths"]=>
            int(0)
            ["recovered"]=>
            int(3)
          }
        }
      }
      ["meta"]=>
      array(5) {
        ["source"]=>
        string(20) "Robert Koch-Institut"
        ["contact"]=>
        string(35) "Marlon Lueckert (m.lueckert@me.com)"
        ["info"]=>
        string(42) "https://github.com/marlon360/rki-covid-api"
        ["lastUpdate"]=>
        string(24) "2021-06-06T00:00:00.000Z"
        ["lastCheckedForUpdate"]=>
        string(24) "2021-06-06T10:21:54.526Z"
      }
    }
    

  • #2
    PHP-Code:
    $meinWert $data["data"]["09362"]["ags"]; 
    Du musst für jede Ebene des Arrays einmal eckige klammern hinten dran schreiben Mehrdimensionale Arrays.
    Tutorials zum Thema Technik:
    https://pilabor.com
    https://www.fynder.de

    Kommentar


    • #3
      [selbst gelöscht]

      Kommentar


      • #4
        Hallo Andreas,
        hallo fastix,

        dann sage ich mal Danke für die schnelle und kompetente Hilfe.

        Hab schon wieder was gelernt

        Schöne Grüße
        Jürgen

        Kommentar


        • #5
          Vereinfachter Zugriff auf 3. Dimension
          PHP-Code:
          <?php

          // JSON auslesen    
          $url "https://api.corona-zahlen.org/districts/09362";  

          if ( 
          $json file_get_contents($url) ){  

              
          $alldata json_decode($jsontrue);

              
          $data $alldata["data"]["09362"];  // auf 3. Dimension reduzieren

              
          $stadt $data["name"];
              
          $bundesland $data["state"];
              
          $wocheninzidenz ceil($data["weekIncidence"]);
          }
          Wenn ein Hoster einem Grundfunktionen verbietet, baut man nicht drum herum, sondern wechselt den Hoster. Es gibt unzählige Hoster, da muss man sich nicht mit Einschränkungen zufrieden geben.

          Kommentar


          • #6
            [selbst gelöscht]

            Kommentar


            • #7
              Zitat von fastix Beitrag anzeigen
              Das mit dem Hoster ist natürlich nicht überall durchsetzbar.
              Eigentlich schon. Ein Hoster ist nur ein Dienstleister. Wenn der sich quer stellt und auf dein Geld verzichten möchte, ist das sein Pech. Schon kurios, dass manche ihrem Hoster gegenüber so unterwürfig sind.

              Kommentar


              • #8
                [selbst gelöscht]

                Kommentar


                • #9
                  Aber bevor ich jetzt meinen Code an willkürliche Hoster-Umgebungen anpasse, würde ich gleich sowas wie Guzzle verwenden:

                  https://docs.guzzlephp.org/en/stable/

                  Man muss ich das Leben ja nicht unnötig selber schwer machen. Weil als nächstes kommt der Hoster vielleicht auf die Idee auch cURL zu deaktivieren und man muss seinen Code wieder umschreiben.

                  Kommentar


                  • #10
                    Zitat von fastix Beitrag anzeigen
                    OSI-Level 9 sind die Chefs...
                    Schön dann hätten wir das auch geklärt, wusste gar nicht dass man mich so bezeichnet.

                    Lies dir mal die Fragestellung durch. Du verhaspelst dich immer tiefer am Thema vorbei. Er hat ja bereits filegetcontents verwendet, also hat er damit kein Problem.

                    Das man mail nicht roh verwenden sollte, so wie du es in deinem korrigierten Beitrag zeigst, sei nur am Rande erwähnt.

                    Kommentar


                    • #11
                      [selbst gelöscht]

                      Kommentar


                      • #12
                        Zitat von fastix Beitrag anzeigen

                        Hehe. Zum Versenden einfacher Textmails - wie z.B. der gezeigten Statusmeldung - ist es absolut geeignet, und die kommen sogar an. Kirche, Dorf und so weiter.
                        Das Problem ist, das es bei dir jetzt funktioniert und du das öffentlich machst. Dann kommt der Nächste und beruft sich auch noch auf diesen Tipp in diesem Thread. Behalte also deine eigenen Vorgehensweisen für dich und gib nur Tipps weiter, die nicht an deine Umgebung gebunden sind.

                        Zitat von fastix Beitrag anzeigen
                        Nun, wenn der TO die ursprünglichen Probleme hat - warum sollte man ihm nicht ein paar Tipps mit auf den Weg geben?
                        Weil dieser Tipp hier
                        PHP-Code:
                        $cmd 'echo /usr/bin/php "' $_SERVER['PHP_SELF'] . '" | at now +10 minutes';
                        system$cmd ); 

                        Unsinn ist.
                        Was hat das mit PHP zu tun?
                        $_SERVER['PHP_SELF'] sollte man nicht verwenden.
                        /usr/bin/php funktioniert nicht auf allen Systemen(windows etc.).
                        Mit Systemaufrufen sollte man generell vorsichtig sein.

                        Will das hier abschliessen, da das sonst nur unendlich weiter geht, ich hoffe du hast verstanden was ich mitteilen wollten. Ansonsten kannst du gerne unter Offtopic einen Faden eröffnen, da dies hier mit der eigentlichen Fragestellung des TE nichts mehr zu tun hat.


                        Kommentar


                        • #13
                          [selbst gelöscht]

                          Kommentar


                          • #14
                            Zitat von fastix Beitrag anzeigen
                            [*]mail() war, ist und bleibt (mindestens) zum Versenden einfacher Statusmails ausreichend. Wenn es wie hier vorliegend einfacher Text ist, die Empfangsadresse, das Subjekt und der Text vom Programmierer bestimmt werden, dann musst Du nicht ein ganzes Framework benutzen, mit dem man Tod, Teufel und Bargeld verschicken kann.[*]mail() (aus php) und das Unix-Tool mail funktionieren auf meinem Webserver und auf meinem Homeserver seit Jahren bestens. Die Mails kommen sogar bei gmail an. Grundlage ist ein sauber konfigurierter exim4. Beide mit „Smarthost“. Mit XAMPP wird das (wie auch at) natürlich nicht laufen.[/LIST]Du solltest nicht so unbedarft mit harten und unberechtigten Worten um Dich werfen. Ansonsten kann es Dir passieren, dass ich Dir auf genau die selbe Weise komme. Und glaube mir, dann fühlst Du Dich nicht weniger „dumm bekrittelt“ als ich.
                            Du verlässt dich also darauf, dass mail() beim Hoster richtig konfiguriert ist? Wozu sich auf irgendwas blind verlassen, wenn man selber die Kontrolle haben kann? PHPMailer ist jetzt nicht wirklich ein Framework, sondern nur eine kleine und bewährte Library. Also ich persönlich sehe keinen Grund mail() zu verwenden. Es bietet keinen Vorteil, aber dafür mögliche Probleme, wenn nicht alles 100% korrekt konfiguriert ist.

                            Was jeder bei sich daheim macht, bleibt ihm überlassen. Aber ich würde hier keine Empfehlung für mail() aussprechen, die andere lesen und dann potenziell Probleme damit haben.

                            Kommentar


                            • #15
                              [selbst gelöscht]

                              Kommentar

                              Lädt...
                              X