0

こんにちは、私は 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";
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 に答える