Клуб API Карт

Запрос при пакетном геокодировании

Пост в архиве.

Добрый день!

 

Средствами php пытаюсь получить координаты адреса.

запрос:

$zapros = file_get_contents ("http://geocode-maps.yandex.ru/1.x/?geocode=Москва,+Тверская+улица,+дом+7&key=МОЙ КЛЮЧ");

в ответ:

[function.file-get-contents]:
failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request

 

 

Причём если эту строку ввести в браузере открывается xml-файл...

Подскажите, пожалуйста, в чём ошибка?

4 комментария
Применил...
Строка преобразуется в вид:

file_get_contents(http%3A%2F%2Fgeocode-maps.yandex.ru%2F1.x%2F%3Fgeocode%3D%CC%EE%F1%EA%E2%E0%2C%2B%D2%E2%E5%F0%F1%EA%E0%FF%2B%F3%EB%E8%F6%E0%2C%2B%E4%EE%EC%2B7%26key....)


Только теперь PHP пытается найти результат запроса локально на сервере, а не отсылает запрос к geocode-maps.yandex.ru:


failed to open stream: Нет такого файла или каталога in /home/users...


Ответ нужно получать через file_get_contents или как-то иначе?
И только через такой запрос-ответ можно сделать пекетное  геокодирование адресов(город+улица+дом) в гео-координаты...?

п.с. Сильно ногами не пинайте в php только начинаю осваивать.
Sergey Konstantinov
28 января 2016, 07:17
urlencode надо применять к параметрам, а не урлу целиком

'http://geocode-maps.yandex.ru/1.x/?geocode=' . urlencode('Москва, Тверская улица, дом 7') . '&key=' . urlencode('МОЙ  КЛЮЧ')
Спасибо twirl !!!
Получилось! :)
Достаточно перекодировать адрес. В ключе все символы юрл-читабельные.