0

您好我正在使用 Max Mind Omni 网络服务,并且正在使用他们的 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";
4

1 回答 1

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];   

希望这可以帮助

于 2013-04-18T10:31:21.153 回答