2017-10-20 22 views
0

ねえ、IP長い文字列フィルタ

は私がFRAM郵便配達、私は街で示す必要がある唯一のものを得たAPIから取得長い文字列の1ビットを示しています。どのように私はこれを行う必要がありますか?

私はPHPで道を見つけようとしているが、私は

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";} 

(イムはちょうどこの質問は、GoogleのIPを使用して)

程度の長さを何をすべきか見当もつかない都市名が変わりました!

私はそれが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'呼び出しの結果である文字列です。 'unserialize'を実行して元のデータ – apokryfos

+0

をカールから得ることができます。これは、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"]; 
}