PHP и API для IP-геолокации

0

Я пытаюсь использовать http://www.hostip.info/use.html в своем веб-приложении, чтобы показать приблизительное местоположение города IP-адреса. Я не могу понять, как на самом деле показать содержимое API... Вот что у меня есть, что не работает.

function showCity($currIP){

$lookupData = 'http://api.hostip.info/get_html.php?ip='.$currIP;
return $lookupData;

}
Теги:
geolocation

2 ответа

2

Ваш API возвращает это:

Country: UNITED STATES (US)
City: Seattle, WA
IP: 168.111.127.225

Поэтому вам нужно выполнить синтаксический анализ строк по этому результату. Используя ниже, вы начнете:

 $array = preg_split('/$\R?^:/m', $lookupData);
 print_r($array);

Попробуйте это вместо этого:

$array = preg_split("/[\r\n]/", $lookupData, -1, PREG_SPLIT_NO_EMPTY);

Кроме того, как упоминалось mcmajkel, если вы используете ссылку JSON api, вы можете получить к ней следующее:

$lookupData = 'http://api.hostip.info/get_json.php?ip='.$currIP;
$api = json_decode($lookupData);
$myName = $api->country_name;
$myCode = $api->country_code;
$myCity = $api->city;
$myIP   = $api->ip;
  • 0
    Это не похоже на работу. Я получаю это: Array ([0] => api.hostip.info/get_html.php?ip=xxx.xxx.xxx.xxx )
  • 0
    Скорректированный ответ с новым регулярным выражением - попробуйте
1

Этот вызов возвращает строку, как упоминается GregP. Но вы можете позвонить http://api.hostip.info/get_json.php?ip=12.215.42.19

И получить хороший кусок JSON взамен, который будет легче разобрать

Ещё вопросы

Сообщество Overcoder
Наверх
Меню