2017-10-20 7 views
0

이봐,내가하려고

IP 긴 문자열 필터는 내가 FRAM 우체부를받은 API에서 얻을 긴 문자열의 1 비트, 내가 보여줄 필요가있는 유일한 도시입니다 보여줍니다. 어떻게해야합니까?

내가 PHP와 방법을 찾기 위해 노력하고있어하지만 난 그렇게 (바로이 질문에 대한 구글의 IP를 사용하여 메신저)

a:14:{s:10:"regionName";s:10:"California";s:6:"status";s:7:"success";s:4:"city";s:13:"Mountain View";s:8:"timezone";s:19:"America/Los_Angeles";s:7:"country";s:13:"United States";s:11:"countryCode";s:2:"US";s:3:"zip";s:0:"";s:3:"lon";d:-122.08499908447266;s:3:"isp";s:6:"Google";s:2:"as";s:19:"AS15169 Google Inc.";s:5:"query";s:7:"8.8.8.8";s:6:"region";s:2:"CA";s:3:"lat";d:37.42290115356445;s:3:"org";s:6:"Google";} 

할 것을 단서

의 길이가 없다 도시 이름이 바뀐다!

내가 그것을 http://ip-api.com/php/8.8.8.8 를 FRM있어 사이트와 내가 사용하고있는 코드 : 당신이 그것을 되돌릴 수 serialize는 PHP에서 PHP 변수를 실행하는 제품입니다

$curl = curl_init(); 

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://ip-api.com/php/8.8.8.8", 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_ENCODING => "", 
    CURLOPT_MAXREDIRS => 10, 
    CURLOPT_TIMEOUT => 30, 
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
    CURLOPT_CUSTOMREQUEST => "GET", 
    CURLOPT_HTTPHEADER => array(
     "cache-control: no-cache", 
     "postman-token: 2e83e542-a6fb-5bb6-94e0-c1908282a2a2" 
    ), 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $response; 
} 
+0

이것은 무엇입니까? 문자열, json, ..? – Naruto

+0

그것은'serialize' 호출의 결과 문자열입니다. 원래 데이터 – apokryfos

+0

을 얻기 위해'unserialize'를 할 수 있습니다. 이것은 http://ip-api.com/php/8.8.8.8에서 얻을 수 있습니다. – Bram

답변

0

unserialize

$curl = curl_init(); 

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://ip-api.com/php/8.8.8.8", 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_ENCODING => "", 
    CURLOPT_MAXREDIRS => 10, 
    CURLOPT_TIMEOUT => 30, 
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
    CURLOPT_CUSTOMREQUEST => "GET", 
    CURLOPT_HTTPHEADER => array(
     "cache-control: no-cache", 
     "postman-token: 2e83e542-a6fb-5bb6-94e0-c1908282a2a2" 
    ), 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 
$responseArray = unserialize($response); //You probably need some error trapping here 

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $responseArray["country"]; 
}