kostenloser Webspace werbefrei: lima-city


eintrag aus json feed per PHP ausgeben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    stargate

    Kostenloser Webspace von stargate

    stargate hat kostenlosen Webspace.

    Hallo!

    Ich hätte da eine Frage:
    Bei einer Feuerwehr Homepage möchte ich gerne den aktuellen Status einbinden (im Einsatz oder eingerückt).
    Es gibt ja dieses json Feed mit allen laufenden Einsätzen auf der Homepage des ooelfv
    (http://intranet.ooelfv.at/webext2/rss/json_laufend.txt)

    Daraus würde ich gerne die Daten entnehmen.

    Ich weiß aber leider nicht, wie ich das anstellen soll.

    Es wäre ein Anfang, die Json Daten mit json_decode in einen PHP Array umzuwandeln.
    Nur weiß ich leider nicht wie ich dann überprüfen soll, ob meine Feuerwehr gerade im Einsatz ist bzw wie dann die dazugehörigen Daten (Uhrzeit, Art des Einsatzes, etc...) ausgegeben werden können.

    Bitte um Hilfe!
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Und wo ist jetzt genau das Problem?
    Du hast doch schon eine Lösung mit dem Array vorgestellt.
    $json = '{"webext2":true,"version":"1.1","title":"laufende Eins\u00e4tze","pubDate":"Fri, 11 Oct 2013 09:32:01 +0200","cnt_einsaetze":2,"cnt_feuerwehren":2,"einsaetze":{"0":{"einsatzkopf":{"num1":"E131000416","einsatzort":"RI - LAMBRECHTEN","startzeit":"Fri, 11 Oct 2013 09:31:04 +0200","inzeit":"","status":"offen","alarmstufe":1,"einsatzart":"TEE","einsatztyp":{"id":"DISP","text":"DISPOSITION"},"einsatzsubtyp":{"id":"SONSTIGE","text":"TECHNISCHER EINSATZ"},"bezirk":{"id":8,"text":"Ried"},"wgs84":{"lng":13.515152320124,"lat":48.318263212805},"cntfeuerwehren":1,"feuerwehren":{"0":{"feuerwehr":"FF Lambrechten"}}}},"1":{"einsatzkopf":{"num1":"E131000415","einsatzort":"WL - GUNSKIRCHEN","startzeit":"Fri, 11 Oct 2013 08:38:28 +0200","inzeit":"","status":"offen","alarmstufe":1,"einsatzart":"TEE","einsatztyp":{"id":"TK","text":"TECHNISCHER EINSATZ KLEIN"},"einsatzsubtyp":{"id":"OELSPUR","text":"\u00d6LSPUR, \u00d6LAUSTRITT"},"bezirk":{"id":14,"text":"Wels-Land"},"wgs84":{"lng":13.942880427597,"lat":48.131886854817},"cntfeuerwehren":1,"feuerwehren":{"0":{"feuerwehr":"FF Gunskirchen"}}}}}}';
    
    echo '<pre>';
    var_dump(json_decode($json, true));

    Kopiere den oberen Bereich mal hier hinein
    http://writecodeonline.com/php/
    Du siehst im Array den Bereich "einsaetze" und genau dort springst du dann rein zum Auslesen.
    Bau dir eine Schleife und lese alle Werte von "einsaetze" aus und schreibe nur die wichtigen Infos in dein Template.

    Beitrag zuletzt geändert: 11.10.2013 9:43:18 von kgreen
  4. Autor dieses Themas

    stargate

    Kostenloser Webspace von stargate

    stargate hat kostenlosen Webspace.

    Das Problem ist ja, dass immer unterschiedlich viele Einträge vorhanden sind, je nachdem wieviele Einsätze gerade am Laufen sind.
    Diese json Datei ist deshalb nicht statisch.

    Deshalb weiß ich nicht wie ich die wichtigen Daten aus diesem dynamischen array holen soll.

    Noch mal kurz zusammengefasst:
    Wenn ein Eintrag in dieser json Datei über die FF Neuhofen i. I. verhanden ist, sollen die Infos zu diesem Einsatz ausgegeben werden, wenn kein Eintrag mit FF Neuhofen i. I. vorhanden ist, nicht.
    Alle Einträge mit anderen Feuerwehren interessieren mich in diesem Fall nicht.

    Wie kann ich das machen?
  5. stargate schrieb:
    Deshalb weiß ich nicht wie ich die wichtigen Daten aus diesem dynamischen array holen soll.

    Mit einer Schleife!
    for, foreach, while, do while
    Such dir eine aus. :biggrin:
    Dafür sind diese Funktionen da, um Arrays auszugeben und/oder zu durchsuchen.

    Und wenn du beim Durchlaufen der Schleife deine Lieblingsfeuerwehr nicht findest, dann gibt es auch keinen Einsatz.

    Edit
    Ein Beispiel, dass man natürlich noch etwas eleganter und schneller umsetzen könnte:
    $json = '{"webext2":true,"version":"1.1","title":"laufende Eins\u00e4tze","pubDate":"Fri, 11 Oct 2013 09:32:01 +0200","cnt_einsaetze":2,"cnt_feuerwehren":2,"einsaetze":{"0":{"einsatzkopf":{"num1":"E131000416","einsatzort":"RI - LAMBRECHTEN","startzeit":"Fri, 11 Oct 2013 09:31:04 +0200","inzeit":"","status":"offen","alarmstufe":1,"einsatzart":"TEE","einsatztyp":{"id":"DISP","text":"DISPOSITION"},"einsatzsubtyp":{"id":"SONSTIGE","text":"TECHNISCHER EINSATZ"},"bezirk":{"id":8,"text":"Ried"},"wgs84":{"lng":13.515152320124,"lat":48.318263212805},"cntfeuerwehren":1,"feuerwehren":{"0":{"feuerwehr":"FF Lambrechten"}}}},"1":{"einsatzkopf":{"num1":"E131000415","einsatzort":"WL - GUNSKIRCHEN","startzeit":"Fri, 11 Oct 2013 08:38:28 +0200","inzeit":"","status":"offen","alarmstufe":1,"einsatzart":"TEE","einsatztyp":{"id":"TK","text":"TECHNISCHER EINSATZ KLEIN"},"einsatzsubtyp":{"id":"OELSPUR","text":"\u00d6LSPUR, \u00d6LAUSTRITT"},"bezirk":{"id":14,"text":"Wels-Land"},"wgs84":{"lng":13.942880427597,"lat":48.131886854817},"cntfeuerwehren":1,"feuerwehren":{"0":{"feuerwehr":"FF Gunskirchen"}}}}}}';
    
    $jsonArray = json_decode($json, true);
    if (array_key_exists('einsaetze', $jsonArray))
    {
      echo 'Folgende Eins&auml;tze sind vorhanden:<br />';
      
      foreach($jsonArray['einsaetze'] as $einsatzkopf)
      {
      	foreach($einsatzkopf as $einsatz)
    	{
    		foreach($einsatz as $key => $value)
    		{
    			echo $key . ' : ' . $value . '<br />';
    		}
    	}
      }
      
    }


    Teste es hier nochmal, um zu sehen, was es ausgibt:
    http://writecodeonline.com/php/

    Beitrag zuletzt geändert: 11.10.2013 11:28:56 von kgreen
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!