2017-07-21 41 views
-2

J'ai cherché des réponses partout, je n'en ai pas trouvé. J'utilise google map geolocation api pour afficher l'adresse de Lat, Long. Je n'ai besoin d'afficher que des données sélectives comme: "formatted_address" de tableau. Voici le code que j'ai essayé d'afficher une réponse en PHP:Obtenir une réponse de GOOGLE MAPS GEOLOCATION API en PHP, la sortie est en JSON

$file_contents = file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?latlng=31.334097,74.235875&sensor=false", true); 
$data = json_decode($file_contents, true); 

foreach($data as $output => $var) { 
    echo $var; 
} 

C'est la réponse: [https://maps.googleapis.com/maps/api/geocode/json?latlng=31.334097,74.235875]

Ceci est la sortie je reçois:

Notice: Array to string conversion in C:\xampp\htdocs\bikewala\myaccount\index.php on line 176
ArrayOK

Lorsque je tente de accéder à n'importe quel composant de tableau en utilisant ce code:

$file_contents = file_get_contents("http://maps.googleapis.com/maps/api/geocode/json?latlng=31.334097,74.235875&sensor=false", true); 
$data = json_decode($file_contents, true); 

foreach($data as $output => $var) { 
    echo $var['formatted_address']; 
} 

J'ai l'erreur suivante:

Notice: Undefined index: formatted_address in C:\xampp\htdocs\bikewala\myaccount\index.php on line 176

Warning: Illegal string offset 'formatted_address' in C:\xampp\htdocs\bikewala\myaccount\index.php on line 176
O

Qu'est-ce que je fais mal ici?

Merci d'avance!

Répondre

1

au lieu d'écho (dans votre première section de code) utiliser print_r ($ var)

$file_contents = 
file_get_contents("http://maps.googleapis.com/maps/api/geocode/json? 
latlng=31.334097,74.235875&sensor=false", true); 
$data = json_decode($file_contents, true); 

foreach($data as $output => $var) { 
    print_r($var); 
} 

cela vous permettra de voir le chemin de la valeur que vous êtes désireux

Vous pouvez accéder à l'exacte valeur que vous voulez avec ce code

$file_contents = file_get_contents("http://maps.googleapis.com/maps/api/geocode/json? 
latlng=31.334097,74.235875&sensor=false", true); 
$data = json_decode($file_contents, true); 

$formatted_address = $data['results']['0']['formatted_address']; 
echo $formatted_address; 
+0

Excellent! A fait le tour. Merci beaucoup! –

+0

Aucun problème du tout :) – Solor