Wert aus einer json-Datei in PHP ausgeben

Verfasst am: 08. 02. 2017 [21:05]
Marcus
219 Beiträge
Dabei seit: 27.01.2011

Sehr aktiver Schreiber
Themenersteller

Beitrag hilfreich?

Hallo zusammen!

Folgender Dateiinhalt liegt in einer json-Datei vor:

PHP
{
	"url": "http://domain",
	"propertiesXmlPaths": {
		"period": ["/notdienste/zeitraum","/
notdienstplan/zeitraum"],
		"entry": ["/container/entries/entry","/notdienste/
notdienst","/notdienstplan/notdienste/notdienst"],
		"name": ["/container/entries/entry/name","/notdienste/
notdienst/apotheke","/notdienstplan/notdienste/notdienst/apotheke"],
		"street": ["/container/entries/entry/street","/notdienste/
notdienst/strasse","/notdienstplan/notdienste/notdienst/strasse"],
		"zipCode": ["/container/entries/entry/zipCode","/notdienste/
notdienst/plz","/notdienstplan/notdienste/notdienst/plz"],
		"location": ["/container/entries/entry/location","/notdienste/
notdienst/ort","/notdienstplan/notdienste/notdienst/ort"],
		"subLocation": ["/container/entries/entry/subLocation","/notdienste/
notdienst/ortsteil","/notdienstplan/notdienste/notdienst/ortsteil"],
		"phone": ["/container/entries/entry/phone","/notdienste/notdienst/
telefon","/notdienstplan/notdienste/notdienst/telefon"],
		"to": ["/container/entries/entry/to"],
		"from": ["/container/entries/entry/from"],
		"lat": ["/container/entries/entry/lat","/notdienste/
notdienst/latitude",
"/notdienstplan/notdienste/notdienst/latitude"],
		"lon": ["/container/entries/entry/lon","/notdienste/
notdienst/longitude","/notdienstplan/notdienste/notdienst/longitude"],
		"date": ["/notdienste/notdienst/datum","/notdienstplan/
notdienste/notdienst/datum"]
	},
	"useCurrentTime": true,
	"toDay": 14,
	"phoneRegionPrefix": "+49",
	"propertiesDisplay": {
		"from": ["<p class=\"date\">","b","u"," – "],
		"to": ["b","u","</p>"],
		"name": ["div"],
		"street": ["p"],
		"zipCode": ["<p class=\"city\">", "span"," "],
		"location": ["span","</p>"],
		"phone": ["p","a"]
	}
}


Nun möchte ich, da die Variale toDay unterschiedlich ist, diese in der entsprechenden Ausgabe-Datei (php) angeben.

Der Code dazu sieht folgendermaßen aus:

PHP
else {
				$content .= "<div class='noEntries'>
						In den nächsten Tagen bieten keine
 Apotheken einen Notdienst an.
						</div>";
			}
			$content .= "</div>";


Wie man eine Variable in php ausgibt weiß ich. Aber wie ich sie aus der json-Datei ins PHP-File bekomme, das schnall ich (noch) nicht.

Mag mir da einer weiterhelfen?

Danke!

Marcus

Das Regional-Magazin für Lüneburg und die Region:
salzsau-panorama.de


Verfasst am: 08. 02. 2017 [21:14]
Matthes
901 Beiträge
Evil Genius
Dabei seit: 08.05.2010

✓ Seitenreport Vorantreiber

Beitrag hilfreich?

Der von Dir gezeigte PHP-Code ist völlig ohne Aussage.

Den Inhalt der Datei in eine Variable lesen, per json_decode in ein Array umwandeln, mit print_r, var_export, o.ä. das Array anzeigen lassen und entsprechend einbauen.

Make Seitenreport great again!


Verfasst am: 08. 02. 2017 [22:01]
joerg
1984 Beiträge
Fachinformatiker Anwendungsentwicklung
Dabei seit: 09.06.2009

✶✶ Sehr aktiver Seitenreport Vorantreiber

Beitrag hilfreich?

Wenn ich das json richtig lese sollte von dem objekt ausgehend

PHP
$json_object -> toDay
dir den Wert liefern.

oder fehlt dir da was wie file_get_contents? http://php.net/manual/en/function.file-get-contents.php

@Matthes warum ein array?



Verfasst am: 08. 02. 2017 [22:43]
Marcus
219 Beiträge
Dabei seit: 27.01.2011

Sehr aktiver Schreiber
Themenersteller

Beitrag hilfreich?

Ich habe jetzt versucht, mich da rein zu arbeiten.

Aber ich fürchte, das das von vornherein eigentlich unmöglich ist / war, da es mehrere Konfigurationsdateien gibt, die alle in einem Verzeichnis liegen.

Die Renderer-Datei aber, die wiederum in einem anderen Verzeichnis liegt, greift ja global.

Sollte es da doch eine Lösung geben, geht das über meine Kenntnisse weit hinaus.

Die Renderer-Datei schaut so aus

Das System verschluckt die : hinter https

Hier nochmal zum kopieren: https://www.dropbox.com/home?preview=Renderer.php

[Dieser Beitrag wurde 4mal bearbeitet, zuletzt am 08.02.2017 um 23:00.]

Das Regional-Magazin für Lüneburg und die Region:
salzsau-panorama.de


Verfasst am: 08. 02. 2017 [23:18]
joerg
1984 Beiträge
Fachinformatiker Anwendungsentwicklung
Dabei seit: 09.06.2009

✶✶ Sehr aktiver Seitenreport Vorantreiber

Beitrag hilfreich?

Verstehe ich das jetzt richtig du versuchst dich hieran?

https://github.com/theorak/datec-emergency-pharmacies-viewer


http://www.aknr.de/notdienst/notdienst_xml.php?id=161 wäre dann mal so eine Datenquelle zu Beispiel



Verfasst am: 08. 02. 2017 [23:32]
Marcus
219 Beiträge
Dabei seit: 27.01.2011

Sehr aktiver Schreiber
Themenersteller

Beitrag hilfreich?

Ja Joerg, das siehst Du richtig!

Und es funktioniert bei mir auch in sofern, das die Anzeige funktioniert:

https://salzsau-panorama.de/stadt-lueneburg/

Wenn keine Notdienst-Apotheke vorliegt, wie in diesem Falle (https://salzsau-panorama.de/aus-der-region/samtgemeinde-gellersen/)

zeigt er nur den (angepassten) Text an, das in den nächsten Tagen kein Notdienst angeboten wird. Und das wollte ich ein bisschen präzisieren.

Dafür habe ich im Verzeichnis Config 10 verschiedene Dateien angelegt. Für jede Samtgemeinde der Region eine.

Aber wie gesagt, wie (und ob) man das hin bekommt, das auf jede einzelne Config separat zugegriffen und der Wert ausgelesen werden kann, das übersteigt meine Fähigkeiten.

Ich belasse es also am besten erst einmal bei der allgemeinen Floskel

Das Regional-Magazin für Lüneburg und die Region:
salzsau-panorama.de


Verfasst am: 09. 02. 2017 [11:56]
Matthes
901 Beiträge
Evil Genius
Dabei seit: 08.05.2010

✓ Seitenreport Vorantreiber

Beitrag hilfreich?

"joerg" schrieb:
@Matthes warum ein array?

Weils ein langer Tag war und ich unkonzentriert... ;)

@Marcus:
Wenn es den Text anzeigt, ist es auch möglich, das zu präzisieren. Zeig einfach mal den ganzen if-Block, bitte, nicht nur den else-Teil.

Make Seitenreport great again!


Verfasst am: 09. 02. 2017 [19:41]
Marcus
219 Beiträge
Dabei seit: 27.01.2011

Sehr aktiver Schreiber
Themenersteller

Beitrag hilfreich?

Hallo Matthes!

Der komplette Block sieht so aus:

PHP
/**
	 * Render HTML View
	 */
	public function renderEntries(array $entries, $errors) {
 
		$content = "<div id=\"notdienstliste\"> \n";
 
		if(count($errors)) {
			$content .="<div id=\"errors\">";
			foreach($errors as $error){
				$content .="<div class=\"error\">".$error."</div>";
			}
			$content .="</div>";
		} else {
			$content .= "<div class=\"notdienste\">\n";
			if(!empty($entries)) {
				foreach($entries as $entry) {
					$content .= "<div class=\"entry\">";
					foreach($this->config->propertiesDisplay
 as $prop => $tags) {
						$content .= $this->wrapByTags($tags,
 $entry[$prop], $prop);
					}
					$content .= "</div>";
				}
			} else {
				$content .= "<div class='noEntries'>
						In den nächsten Tagen bietet keine
 Apotheke in der Samtgemeinde einen Notdienst an.
						</div>";
			}
			$content .= "</div>";
		}
			$content .= "</div>";
			$content .= "<div class=\"datecCopyright\">
powered by <a href=\"https://www.datec-schmidt.de\">Datentechnik Schmidt Software GmbH
</a></div>";
 
		return $content;
	}


Das Regional-Magazin für Lüneburg und die Region:
salzsau-panorama.de


Verfasst am: 09. 02. 2017 [21:31]
Matthes
901 Beiträge
Evil Genius
Dabei seit: 08.05.2010

✓ Seitenreport Vorantreiber

Beitrag hilfreich?

Ja, damit kann man arbeiten.
Lass Dir mal den Inhalt von $entries anzeigen und poste ihn hier.
Am besten von einer Apotheke ohne Notdienst.

Gleich nach
$content = "<div id=\"notdienstliste\"> \n";

ein print_r($entries) oder was du da am liebsten benutzt.

Make Seitenreport great again!


Verfasst am: 09. 02. 2017 [21:55]
Marcus
219 Beiträge
Dabei seit: 27.01.2011

Sehr aktiver Schreiber
Themenersteller

Beitrag hilfreich?

Hallo Matthes!

Mit var_dump($entries) ergibt es array(0) { }


print_r und var_export ergeben array ( ).

Das Regional-Magazin für Lüneburg und die Region:
salzsau-panorama.de





to Top to Top

Du bist nicht eingeloggt. Bitte beachte, dass Du eingeloggt sein musst, um Themen zu erstellen oder auf Beiträge zu antworten.

RSS Feed abonnieren

Werde in Echtzeit über neue Foren-Beiträge informiert:

RSS Feed abonnieren


3 Mitglieder waren innerhalb der letzten 15 Minuten online (38 heute gesamt):
accu-online, ghettoprosecco, verpackungplus

Administratoren und Moderatoren:
[keine]

Seitenreport hat 45608 registrierte Mitglieder, 4279 Themen und 37362 Beiträge.
Der aktuelle Mitgliederzuwachs liegt bei durchschnittlich 5 bestätigten Neuregistrierungen pro Tag.
Pro Tag werden im Seitenreport Forum durchschnittlich 0 neue Themen und 3 Beiträge erstellt.
Die Durchschnittszahlen berechnen sich aus den letzten 7 Tagen.

Mehrfach empfohlen

Seitenreport ist einer der bekanntesten SEO und Website Analyse Dienste im deutschsprachigen Raum und wurde u.a. schon empfohlen:
von Mr. Wong im Wong Letter
vom Leserservice der Deutschen Post
vom Technik Blog SiN
und vielen anderen

Seitenreport API

Verfolge die SERP Positionen Deiner Keywords und erhalte Informationen über verwendete Mikroformate, frage die Ergebnisse unserer Analysen live ab oder greife auf unsere History-Datenbank zu. Dies alles bietet Dir die neue Seitenreport API. Kontaktiere uns, um weitere Infos zu erhalten.