Ich habe ein Skript, bei dem ich mich an die Geocoding API von Google anpinge, um ein lat/lng zu erhalten. Gelegentlich versucht das Skript jedoch, weitere Aktionen auszuführen, bevor die Antwort empfangen wurde.simplexml_load_file warte auf Antwort
Der Code, den ich habe, ist:
function getvalues($myzip) {
$hello = simplexml_load_file('http://maps.googleapis.com/maps/api/geocode/xml?address='.$myzip.'&sensor=true');
return $hello;
}
Wie würde ich mich darüber Pause zu haben und nicht die nächsten Funktionen auszuführen, bis Google mit den relevanten Daten geantwortet hat? Ich habe versucht, eine While-Schleife zu machen - aber das war ungeschickt und verursachte andere Probleme.
bearbeiten hinzuzufügen:
Mein nächstes Stück Code ist:
$mything = getvalues($myzip);
$lat = ($mything->result[0]->geometry[0]->location[0]->lat);
$lng = ($mything->result[0]->geometry[0]->location[0]->lng);
und wenn Fehler zeigen - ich sehe -
Hinweis: Der Versuch, in Eigentum von Nicht-Objekt zu erhalten/calc_dist3.php on line 14
Hinweis: Der Versuch, die Eigenschaft non-object in /calc_dist3.php in Zeile 14
zu erhaltenHinweis: Der Versuch, Eigentum von Nicht-Objekt in /calc_dist3.php auf der Leitung 14 zu bekommen
Hinweis: Der Versuch 15 Eigenschaft von Nicht-Objekt in /calc_dist3.php on line
Hinweis zu erhalten: Der Versuch, erhält Eigenschaft von nicht-Objekt in /calc_dist3.php on line 15
Hinweis: der Versuch, Eigentum von nicht-Objekt in /calc_dist3.php auf Linie auf so definiert 15
(mit $ lat und $ zu bekommen lng Linien 14/15)
Also, wenn Sie 'getvalues ()' ... Zeilen nach es in Ihrem PHP ausführen, bevor die Funktion alles zurückgibt ??? Bist du sicher, dass "simplexml_load_file" nicht freigeschaltet wurde? Führen Sie eine Fehlerüberprüfung und -ausgabe durch, um sicherzugehen. – IncredibleHat
Ausführung KANN NICHT und wird nicht hier fortgesetzt, bis simplexml_load_file zurückkehrt ... so ist es entweder ein Timeout- oder Verbindungsproblem. –
Yep - Verbindungsproblem am Server. Vielen Dank! – user7355700