JSON und PHP

jochberger

Mitglied
Hallo,
ich brauche wieder einmal einen Tipp von euch.
Kennt sich jemand mit JSON in Verbindung mit PHP aus?
Leider kann ich keine verständlichen Tutorials oder andere Hilfestellungen finden.

Es geht mir dabei vorallem um die Ausgabe des Google Routenplaners auf meiner Homepage.
Zur Information wie diese Daten aufgebaut sind hänge ich eine Textdatei mit der JSON ausgabe an.

Die Generierung des Abruflinks habe ich folgendermaßen gelöst:
PHP:
if (isset($send)) {
	$strasse=str_replace(" " , "+" , $_POST['strasse']);
	$haus=str_replace(" " , "+" , $_POST['haus']);
	$ort=str_replace(" " , "+" , $_POST['ort']);
	$plz=str_replace(" " , "+" , $_POST['plz']);

	$Abfahrt=$strasse."+".$haus."+".$plz."+".$ort;
	$ZIEL="Ossiachberg+15+9552+Steindorf";
	$httpadr="https://maps.googleapis.com/maps/api/directions/json?origin=".$Abfahrt."&destination=".$ZIEL."&sensor=false";

	if ($_POST['autobahn']=="autobahn") {
		$httpadr=$httpadr."&avoid=highways";
	}
	if ($_POST['maut']=="maut") {
		$httpadr=$httpadr."&avoid=tolls";
	}
}

Es würde mich sehr freuen, wenn mir jemand eine kleine Hilfestellung geben kann. Auch über Links zu brauchbaren Informationsquellen bin ich dankbar!


//EDIT: Nachtrag:
Mitlerweile habe ich es soweit geschafft, dass die Daten von Google abgefufen und in eine Variable gespeichert werden. Jedoch wie kann ich dies jetz weiterverarbeiten?
Hier der aktuelle Code:
PHP:
if (isset($send)) {
	$strasse_orig=$_POST['strasse'];
	$haus_orig=$_POST['haus'];
	$ort_orig=$_POST['ort'];
	$plz_orig=$_POST['plz'];
	
	//ß entfernen
	$plz_sz=str_replace("ß" , "ss" , $plz_orig);
	$ort_sz=str_replace("ß" , "ss" , $ort_orig);
	$haus_sz=str_replace("ß" , "ss" , $haus_orig);
	$strasse_sz=str_replace("ß" , "ss" , $strasse_orig);
	
	//ü und Ü entfernen
	$strasse_ue=str_replace("ü" , "ue" , (str_replace("Ü" , "Ue" , $strasse_sz)));
	$haus_ue=str_replace("ü" , "ue" , (str_replace("Ü" , "Ue" , $strasse_sz)));
	$plz_ue=str_replace("ü" , "ue" , (str_replace("Ü" , "Ue" , $plz_sz)));
	$ort_ue=str_replace("ü" , "ue" , (str_replace("Ü" , "Ue" , $ort_sz)));

	//ö und Ö entfernen
	$strasse_oe=str_replace("ö" , "oe" , (str_replace("Ö" , "Oe" , $strasse_ue)));
	$haus_oe=str_replace("ö" , "oe" , (str_replace("Ö" , "Oe" , $haus_ue)));
	$plz_oe=str_replace("ö" , "oe" , (str_replace("Ö" , "Oe" , $plz_ue)));
	$ort_oe=str_replace("ö" , "oe" , (str_replace("Ö" , "Oe" , $ort_ue)));
	
	//ä und Ä entfernen
	$strasse_ae=str_replace("ä" , "ae" , (str_replace("Ä" , "Ae" , $strasse_oe)));
	$haus_ae=str_replace("ä" , "ae" , (str_replace("Ä" , "Ae" , $haus_oeig)));
	$plz_ae=str_replace("ä" , "ae" , (str_replace("Ä" , "Ae" , $plz_oe)));
	$ort_ae=str_replace("ä" , "ae" , (str_replace("Ä" , "Ae" , $ort_oe)));
	
	$strasse=urlencode($strasse_ae);
	$haus=urlencode($haus_ae);
	$plz=urlencode($plz_ae);
	$ort=urlencode($ort_ae);
	
	$Abfahrt=$strasse."+".$haus."+".$plz."+".$ort;
	$ZIEL="Ossiachberg+15+9552+Steindorf";
	$httpadr="https://maps.googleapis.com/maps/api/directions/json?origin=".$Abfahrt."&destination=".$ZIEL."&sensor=false";

	if ($_POST['autobahn']=="autobahn") {
		$httpadr=$httpadr."&avoid=highways";
	}
	if ($_POST['maut']=="maut") {
		$httpadr=$httpadr."&avoid=tolls";
	}
	$route=file_get_contents($httpadr);
	echo $route;
}
Ich bin dankbar für jede Hilfe.
Gruß
Jochberger
 

Anhänge

Zuletzt bearbeitet:
Guten Morgen,
Mein Problem ist folgendes:
Ich habe die Daten mit json_decode in ein PHP Array gespeichert.
Allerdings habe ich keine Ahnung wie ich diese Daten jetzt ausgeben soll. Mit solchen Arrays habe ich noch nichts zu tun gehabt.
Versucht hätte ich das schon mal so:
PHP:
	$str_json=file_get_contents($httpadr);
	$route=json_decode($str_json, true);
	if ($route['status']=='OK') {
		echo "<div id='RP_Text'>";
		echo "<table><tr><td>Strecke</td></tr><tr><td>Entfernung:</td><td>";
		echo $route[distance=>text]];
Darauf folgt nur die Meldung:Parse error: syntax error, unexpected T_DOUBLE_ARROW, expecting ']'

Kann mir jemand ein Beispiel geben, wie das funktioniert?
Zur Information wie die Daten momentan aufgebaut sind ist eine Textdatei im Anhang.

Vielen Dank
Gruß
jochberger
 

Anhänge

@Jochberger: Was sollte die Passage
Code:
$roue[distance=>text]]
bewirken?
Eigentlich wollte ich nur die Entfernung als Text ausgeben lassen (hätte auch drauf kommen können, dass es für solche Zwecke Funktionen gibt).
Mittlerweile bin ich aber endlich so weit, dass die Verarbeitung der auszugebenden Passagen kein Problem mehr darstellt.
Allerdings bereitet mir die Anzeige der Karte und das Zeichnen der Polyline noch Kopfschmerzen. Die Anzeige der Karte wird von Google in den Nutzungsbedingungen gefordert.
Informationen zu den Linien sind im Array enthalten, jedoch habe ich keinen blassen Schimmer wie ich diese auf die Karte bringen soll.

Hat jemand schon so etwas gemacht und kann mir dabei helfen?

Vielen dank und noch ein schönes Wochenende
Gruß
Jochberger
 
Guten Morgen,
Mein Problem ist folgendes:
Ich habe die Daten mit json_decode in ein PHP Array gespeichert.
Allerdings habe ich keine Ahnung wie ich diese Daten jetzt ausgeben soll. Mit solchen Arrays habe ich noch nichts zu tun gehabt.
Schau dir den Array mal mit var_dump() an. Das hilst meistens um zu verstehen welche Struktur das ein Array hat.
 
Zurück