У меня есть следующий код PHP
$str = $city . ', ' . $country . ', ' . $addr;
$address = urlencode($str);
$country = urlencode($country);
$json = file_get_contents("https://maps.google.com/maps/api/geocode/json?address=$address&sensor=false®ion=$country");
$json = json_decode($json);
$lat = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lat'};
$long = $json->{'results'}[0]->{'geometry'}->{'location'}->{'lng'};
if ($long and $lat) {
$sql = "`lat`='$lat',`lng`='$long',`edit_date`=NOW()";
$up_sql = "UPDATE `user_cards` SET " . $sql . " WHERE `id`='$id'";
}
Этот код успешно работает в 90% случаев, проблема возникает только с определенными адресами.
Например, если $ str = «Болгария, Равда, Emerald Beach Resort» и $ country = «Болгария», file_get_contents возвращает значение NULL, но если я вставлю эту строку в maps.google.com, Google успешно найдет этот адрес. Где ошибка?
Задача ещё не решена.
Других решений пока нет …