将Max MInd Omni Web服务阵列转换为变量

时间:2013-04-18 10:25:11

标签: php arrays

您好我正在使用Max Mind Omni Web服务并使用他们的PHP示例代码。

我是使用curl的新手,我正在尝试找出将数组分成单个变量的最佳方法,我可以将其插入到数据库表中。

下面的

是我正在使用的代码示例。当我运行此代码时,我似乎无法获得全向键的单个值。

任何建议都将不胜感激。

 if (!isset($params['i'])) $params['i'] = '82.150.248.29';

 $query = 'https://geoip.maxmind.com/e?' . http_build_query($params);

 $omni_keys = 
   array(
    'country_code',
    'country_name',
    'region_code',
    'region_name',
    'city_name',
    'latitude',
    'longitude',
    'metro_code',
    'area_code',
    'time_zone',
    'continent_code',
    'postal_code',
    'isp_name',
    'organization_name',
    'domain',
    'as_number',
    'netspeed',
    'user_type',
    'accuracy_radius',
    'country_confidence',
    'city_confidence',
    'region_confidence',
    'postal_confidence',
    'error'
    );

   $curl = curl_init();
   curl_setopt_array( $curl, 
               array(
                     CURLOPT_URL => $query,
                     CURLOPT_USERAGENT => 'MaxMind PHP Sample',
                     CURLOPT_RETURNTRANSFER => true
                     )
               );

            $resp = curl_exec($curl);

          if (curl_errno($curl)) {
            throw new Exception('GeoIP Request Failed');
              }

                  $omni_values = str_getcsv($resp);
                $omni = array_combine( $omni_keys, $omni_values);

                //print_r($omni_values);

                 $country_code=$omni_value[0];
                 $country_name=$omni_value[1];
                 echo "$country_code";
                 echo "$country_name";

1 个答案:

答案 0 :(得分:0)

你的代码中有一个拼写错误....

$country_code= $omni_values[0]; //instead of $omni_value[0];

它中的这一行使它成为一个关联数组。

$omni = array_combine( $omni_keys, $omni_values);

所以你会做出一些改变:

$country_code= $omni['country_code']; //instead of $omni_value[0];
$country_name= $omni['country_name']; //instead of $omni_value[1];   

希望这有帮助