2016-09-22 3 views
0

Я хочу создать простую страницу, которая печатает регион, в котором вы находитесь, я использую API с этого сайта freegeoip.net. Я настроил его так, что он запускает ip пользователей через сайт и возвращает JSON, однако у меня возникают проблемы с анализом этого ответа. Это код, который я написал:PHP JSON синтаксический анализ cURL

<?php 
$person = $_SERVER["REMOTE_ADDR"]; 

$url = "freegeoip.net/json/$person"; 

$cURL = curl_init(); 

curl_setopt($cURL, CURLOPT_URL, $url); 

curl_setopt($cURL, CURLOPT_HTTPGET, true); 

curl_setopt($cURL, CURLOPT_HTTPHEADER, array(
    'Content-Type: application/json', 
    'Accept: application/json' 
    )); 

$result = curl_exec($cURL); 

curl_close($cURL); 


$json = json_decode($result, true); 

echo $json['region_name']; 
echo $json['city']; 
?> 

Однако по какой-то причине, он по-прежнему печатает полный ответ от сервера API ... как я могу это исправить?

+0

вы можете проверить/проверить ответ https://www.hurl.it/ перед тем, как попробовать с кодом –

ответ

2

Добавьте следующую строку после установки CURLOPT_HTTPHEADER:

curl_setopt($cURL, CURLOPT_RETURNTRANSFER, 1); 

По умолчанию curl_exec() выводит ответ непосредственно и возвращает значение TRUE в случае успешного завершения или FALSE в случае возникновения ошибки. Если вы установите CURLOPT_RETURNTRANSFER в TRUE, curl_exec() вернет фактический результат успешной операции, но все равно вернет FALSE при ошибке.

Смежные вопросы