В настоящее время я работаю над функцией php геокодирования, используя API карт google. Как ни странно, file_get_contents() возвращает bool (false), тогда как URL-адрес, который я использую, правильно закодирован, я думаю.php file_get_contents() возвращает false с действительным url
В моем браузере, когда я тестирую код, страница загружается очень долго, а геокодирование не работает (конечно, учитывая, что API не дает мне то, что я хочу).
Также я попытался использовать завиток, пока не достиг успеха.
Если бы кто-нибудь мог мне помочь, это было бы здорово!
Большое спасибо.
Код:
function test_geocoding2(){
$addr = "14 Boulevard Vauban, 26000 Valence";
if(!gc_geocode($addr)){
echo "false <br/>";
}
}
function gc_geocode($address){
$address = urlencode($address);
$url = "http://maps.google.com/maps/api/geocode/json?address={$address}";
$resp_json = file_get_contents($url);
$resp = json_decode($resp_json, true);
if($resp['status']=='OK'){
$lati = $resp['results'][0]['geometry']['location']['lat'];
$longi = $resp['results'][0]['geometry']['location']['lng'];
if($lati && $longi){
echo "(" . $lati . ", " . $longi . ")";
}else{
echo "data not complete <br/>";
return false;
}
}else{
echo "status not ok <br/>";
return false;
}
}
UPDATE: Проблема действительно была в том, что я был за прокси-сервером. Я тестировал другую сеть, и она работает правильно. Тем не менее, ваши ответы о том, что я возвращаю и как я проверяю успех, тоже очень приятны и помогут мне улучшить код.
Большое спасибо!
Скорее всего, вы используете какое-то прокси-сервер для Интернета. http://stackoverflow.com/questions/5211887/how-to-use-curl-via-a-proxy – Ali
Вы никогда не возвращаете ничего, кроме 'false' в функцию' gc_geocode() '... you' echo' другие вещи, но никогда не возвращать 'true' после этого – Ben
Попробуйте' if (gc_geocode ($ addr) === false) ' –