function extractXML($xml) { if (!$xml->children()) { return (string) $xml; } foreach ($xml->children() as $child) { $name = $child->getName(); if (count($xml->{$name}) == 1) { $element[$name] = extractXML($child); } else { $element[][$name] = extractXML($child); } } return $element; }
<?php error_reporting(E_ERROR); define(FORECAST_API, "64fc585d500232717d682f3b5126505e"); header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); $req = $_GET["req"]; $address = $_GET['address']; $degree = $_GET['degree']; $result = extractXML($address, $degree); echo "{$result}"; function extractXML($url, $degree) { //$api="https://maps.google.com/maps/api/geocode/xml?"; $api = "https://maps.googleapis.com/maps/api/geocode/xml?"; $query = array('address' => $url, 'key' => 'AIzaSyDQueJ2wi4jkvVpg0DoKyNh6SweoOlbeo0'); $link = $api . http_build_query($query); $xml = simplexml_load_file($link); //$xml = str_replace(array("\n", "\r", "\t"), '', $xml); $status = $xml->status; if ($status == 'OK') { $location = $xml->result->geometry->location; $lat = $location->lat; $lng = $location->lng; return extractJson($lat, $lng, $degree); } else { if ($status == 'ZERO_RESULTS' && isset($_POST['submit'])) { $result = array("status" => "ZERO_RESULTS"); return json_encode($result); } }