PHP Decode von Google Geocode API JSON Breaks Wenn Antwort Enthält "/"

stimmen
0

Unten ist der entsprechende Code in meiner Anwendung .....

<?
$jsonData   = file_get_contents($url);
        $data = json_decode($jsonData, TRUE);
        $lat = $data['results']['0']['geometry']['location']['lat'];
        $lng = $data['results']['0']['geometry']['location']['lng'];
        $formattedAddress = $data['results']['0']['formatted_address'];
        $acomp = $data['results']['0']['address_components'];
        foreach ($acomp as $acompArray) {
            if (in_array(neighborhood, $acompArray[types])) {
                $neighborhood = $acompArray[long_name];
            }
        }
$acomp = $data['results']['0']['address_components'];
foreach ($acomp as $acompArray) {
    if (in_array(neighborhood, $acompArray[types])) {
         $neighborhood = $acompArray[long_name];
    }
}
?>

Unten ist die JSON-Antwort von Google Geocoder API (eines der Beispiele, die brach)

{
   results : [
      {
         address_components : [
            {
               long_name : 3900,
               short_name : 3900,
               types : [ street_number ]
            },
            {
           long_name : Winchell Avenue,
           short_name : Winchell Ave,
           types : [ route ]
        },
        {
           long_name : Oakland/Winchell,
           short_name : Oakland/Winchell,
           types : [ neighborhood, political ]
        },
        {
           long_name : Kalamazoo,
           short_name : Kalamazoo,
           types : [ locality, political ]
        },
        {
           long_name : Kalamazoo,
           short_name : Kalamazoo,
           types : [ administrative_area_level_2, political ]
        },
        {
           long_name : Michigan,
           short_name : MI,
           types : [ administrative_area_level_1, political ]
        },
        {
           long_name : United States,
           short_name : US,
           types : [ country, political ]
        },
        {
           long_name : 49008,
           short_name : 49008,
           types : [ postal_code ]
        }
     ],
     ---A LOT MORE BUT DELETED THE IRRELEVANT PORTIONS---
}

Das Problem scheint mit der Nachbarschaft ‚Oakland / Winchell‘, meine Theorie zu geschehen ist, dass es ein ‚/‘ enthält, die es nichts zu machen scheinen zurückzukehren ... Wie dieses Problem beheben?

Veröffentlicht am 23/02/2013 um 21:05
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
-1
$json_url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=".$row2[lat].",".$row2[lng]."&sensor=true";
// Initializing curl
$ch = curl_init( $json_url );

// Setting curl options
curl_setopt_array( $ch, $options );

// Getting results                                                                     
    $data = curl_exec($ch);
    curl_close($ch);

// parse the json response
    $jsondata = json_decode($data,true);
    $results = $jsondata['results'][0];
    $addr =$results['formatted_address'];
Beantwortet am 14/10/2013 um 23:33
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more