2017-01-04 3 views
-2

Was ich versuche zu tun ist, den Namen des Landes durch den Ländercode zu bekommen. Vielleicht gibt es einen einfachen Weg, aber ich würde es gerne mit einem Array (Lernprozess) machen. Derzeit erhalte ich nur den Ausgangs-Ländercode ("ES" in meinem Fall) Stadt und IP.Ländercode in Ländernamen mit PHP-Array umwandeln

Und was ich tun möchte ist, ES in Spanien zu verwandeln.

Hilfe! und danke im voraus. Dies ist mein Code:

<?php 

$ip = getenv('HTTP_CLIENT_IP')?: 
getenv('HTTP_X_FORWARDED_FOR')?: 
getenv('HTTP_X_FORWARDED')?: 
getenv('HTTP_FORWARDED_FOR')?: 
getenv('HTTP_FORWARDED')?: 
getenv('REMOTE_ADDR'); 

$location = json_decode(file_get_contents("http://ipinfo.io/{$ip}")); 

$country_name = array(
    'AF' => 'Afghanistan', 
    'AX' => 'Aland Islands', 
    'AL' => 'Albania', 
    'DZ' => 'Algeria', 
    'AS' => 'American Samoa', 
    'AD' => 'Andorra', 
    'AO' => 'Angola', 
    'AI' => 'Anguilla', 
    'AQ' => 'Antarctica', 
    'AG' => 'Antigua and Barbuda', 
    'AR' => 'Argentina', 
    'AM' => 'Armenia', 
    'AW' => 'Aruba', 
    'AU' => 'Australia', 
    'AT' => 'Austria', 
    'AZ' => 'Azerbaijan', 
    'BS' => 'Bahamas the', 
    'BH' => 'Bahrain', 
    'BD' => 'Bangladesh', 
    'BB' => 'Barbados', 
    'BY' => 'Belarus', 
    'BE' => 'Belgium', 
    'BZ' => 'Belize', 
    'BJ' => 'Benin', 
    'BM' => 'Bermuda', 
    'BT' => 'Bhutan', 
    'BO' => 'Bolivia', 
    'BA' => 'Bosnia and Herzegovina', 
    'BW' => 'Botswana', 
    'BV' => 'Bouvet Island (Bouvetoya)', 
    'BR' => 'Brazil', 
    'IO' => 'British Indian Ocean Territory (Chagos Archipelago)', 
    'VG' => 'British Virgin Islands', 
    'BN' => 'Brunei Darussalam', 
    'BG' => 'Bulgaria', 
    'BF' => 'Burkina Faso', 
    'BI' => 'Burundi', 
    'KH' => 'Cambodia', 
    'CM' => 'Cameroon', 
    'CA' => 'Canada', 
    'CV' => 'Cape Verde', 
    'KY' => 'Cayman Islands', 
    'CF' => 'Central African Republic', 
    'TD' => 'Chad', 
    'CL' => 'Chile', 
    'CN' => 'China', 
    'CX' => 'Christmas Island', 
    'CC' => 'Cocos (Keeling) Islands', 
    'CO' => 'Colombia', 
    'KM' => 'Comoros the', 
    'CD' => 'Congo', 
    'CG' => 'Congo the', 
    'CK' => 'Cook Islands', 
    'CR' => 'Costa Rica', 
    'CI' => 'Cote d\'Ivoire', 
    'HR' => 'Croatia', 
    'CU' => 'Cuba', 
    'CY' => 'Cyprus', 
    'CZ' => 'Czech Republic', 
    'DK' => 'Denmark', 
    'DJ' => 'Djibouti', 
    'DM' => 'Dominica', 
    'DO' => 'Dominican Republic', 
    'EC' => 'Ecuador', 
    'EG' => 'Egypt', 
    'SV' => 'El Salvador', 
    'GQ' => 'Equatorial Guinea', 
    'ER' => 'Eritrea', 
    'EE' => 'Estonia', 
    'ET' => 'Ethiopia', 
    'FO' => 'Faroe Islands', 
    'FK' => 'Falkland Islands (Malvinas)', 
    'FJ' => 'Fiji the Fiji Islands', 
    'FI' => 'Finland', 
    'FR' => 'France, French Republic', 
    'GF' => 'French Guiana', 
    'PF' => 'French Polynesia', 
    'TF' => 'French Southern Territories', 
    'GA' => 'Gabon', 
    'GM' => 'Gambia the', 
    'GE' => 'Georgia', 
    'DE' => 'Germany', 
    'GH' => 'Ghana', 
    'GI' => 'Gibraltar', 
    'GR' => 'Greece', 
    'GL' => 'Greenland', 
    'GD' => 'Grenada', 
    'GP' => 'Guadeloupe', 
    'GU' => 'Guam', 
    'GT' => 'Guatemala', 
    'GG' => 'Guernsey', 
    'GN' => 'Guinea', 
    'GW' => 'Guinea-Bissau', 
    'GY' => 'Guyana', 
    'HT' => 'Haiti', 
    'HM' => 'Heard Island and McDonald Islands', 
    'VA' => 'Holy See (Vatican City State)', 
    'HN' => 'Honduras', 
    'HK' => 'Hong Kong', 
    'HU' => 'Hungary', 
    'IS' => 'Iceland', 
    'IN' => 'India', 
    'ID' => 'Indonesia', 
    'IR' => 'Iran', 
    'IQ' => 'Iraq', 
    'IE' => 'Ireland', 
    'IM' => 'Isle of Man', 
    'IL' => 'Israel', 
    'IT' => 'Italy', 
    'JM' => 'Jamaica', 
    'JP' => 'Japan', 
    'JE' => 'Jersey', 
    'JO' => 'Jordan', 
    'KZ' => 'Kazakhstan', 
    'KE' => 'Kenya', 
    'KI' => 'Kiribati', 
    'KP' => 'Korea', 
    'KR' => 'Korea', 
    'KW' => 'Kuwait', 
    'KG' => 'Kyrgyz Republic', 
    'LA' => 'Lao', 
    'LV' => 'Latvia', 
    'LB' => 'Lebanon', 
    'LS' => 'Lesotho', 
    'LR' => 'Liberia', 
    'LY' => 'Libyan Arab Jamahiriya', 
    'LI' => 'Liechtenstein', 
    'LT' => 'Lithuania', 
    'LU' => 'Luxembourg', 
    'MO' => 'Macao', 
    'MK' => 'Macedonia', 
    'MG' => 'Madagascar', 
    'MW' => 'Malawi', 
    'MY' => 'Malaysia', 
    'MV' => 'Maldives', 
    'ML' => 'Mali', 
    'MT' => 'Malta', 
    'MH' => 'Marshall Islands', 
    'MQ' => 'Martinique', 
    'MR' => 'Mauritania', 
    'MU' => 'Mauritius', 
    'YT' => 'Mayotte', 
    'MX' => 'Mexico', 
    'FM' => 'Micronesia', 
    'MD' => 'Moldova', 
    'MC' => 'Monaco', 
    'MN' => 'Mongolia', 
    'ME' => 'Montenegro', 
    'MS' => 'Montserrat', 
    'MA' => 'Morocco', 
    'MZ' => 'Mozambique', 
    'MM' => 'Myanmar', 
    'NA' => 'Namibia', 
    'NR' => 'Nauru', 
    'NP' => 'Nepal', 
    'AN' => 'Netherlands Antilles', 
    'NL' => 'Netherlands the', 
    'NC' => 'New Caledonia', 
    'NZ' => 'New Zealand', 
    'NI' => 'Nicaragua', 
    'NE' => 'Niger', 
    'NG' => 'Nigeria', 
    'NU' => 'Niue', 
    'NF' => 'Norfolk Island', 
    'MP' => 'Northern Mariana Islands', 
    'NO' => 'Norway', 
    'OM' => 'Oman', 
    'PK' => 'Pakistan', 
    'PW' => 'Palau', 
    'PS' => 'Palestinian Territory', 
    'PA' => 'Panama', 
    'PG' => 'Papua New Guinea', 
    'PY' => 'Paraguay', 
    'PE' => 'Peru', 
    'PH' => 'Philippines', 
    'PN' => 'Pitcairn Islands', 
    'PL' => 'Poland', 
    'PT' => 'Portugal, Portuguese Republic', 
    'PR' => 'Puerto Rico', 
    'QA' => 'Qatar', 
    'RE' => 'Reunion', 
    'RO' => 'Romania', 
    'RU' => 'Russian Federation', 
    'RW' => 'Rwanda', 
    'BL' => 'Saint Barthelemy', 
    'SH' => 'Saint Helena', 
    'KN' => 'Saint Kitts and Nevis', 
    'LC' => 'Saint Lucia', 
    'MF' => 'Saint Martin', 
    'PM' => 'Saint Pierre and Miquelon', 
    'VC' => 'Saint Vincent and the Grenadines', 
    'WS' => 'Samoa', 
    'SM' => 'San Marino', 
    'ST' => 'Sao Tome and Principe', 
    'SA' => 'Saudi Arabia', 
    'SN' => 'Senegal', 
    'RS' => 'Serbia', 
    'SC' => 'Seychelles', 
    'SL' => 'Sierra Leone', 
    'SG' => 'Singapore', 
    'SK' => 'Slovakia (Slovak Republic)', 
    'SI' => 'Slovenia', 
    'SB' => 'Solomon Islands', 
    'SO' => 'Somalia, Somali Republic', 
    'ZA' => 'South Africa', 
    'GS' => 'South Georgia and the South Sandwich Islands', 
    'ES' => 'Spain', 
    'LK' => 'Sri Lanka', 
    'SD' => 'Sudan', 
    'SR' => 'Suriname', 
    'SJ' => 'Svalbard & Jan Mayen Islands', 
    'SZ' => 'Swaziland', 
    'SE' => 'Sweden', 
    'CH' => 'Switzerland, Swiss Confederation', 
    'SY' => 'Syrian Arab Republic', 
    'TW' => 'Taiwan', 
    'TJ' => 'Tajikistan', 
    'TZ' => 'Tanzania', 
    'TH' => 'Thailand', 
    'TL' => 'Timor-Leste', 
    'TG' => 'Togo', 
    'TK' => 'Tokelau', 
    'TO' => 'Tonga', 
    'TT' => 'Trinidad and Tobago', 
    'TN' => 'Tunisia', 
    'TR' => 'Turkey', 
    'TM' => 'Turkmenistan', 
    'TC' => 'Turks and Caicos Islands', 
    'TV' => 'Tuvalu', 
    'UG' => 'Uganda', 
    'UA' => 'Ukraine', 
    'AE' => 'United Arab Emirates', 
    'GB' => 'United Kingdom', 
    'US' => 'United States of America', 
    'UM' => 'United States Minor Outlying Islands', 
    'VI' => 'United States Virgin Islands', 
    'UY' => 'Uruguay, Eastern Republic of', 
    'UZ' => 'Uzbekistan', 
    'VU' => 'Vanuatu', 
    'VE' => 'Venezuela', 
    'VN' => 'Vietnam', 
    'WF' => 'Wallis and Futuna', 
    'EH' => 'Western Sahara', 
    'YE' => 'Yemen', 
    'ZM' => 'Zambia', 
    'ZW' => 'Zimbabwe' 
); 

$country_code = $location->country; 

foreach ($country_name as $country_full_name) { 

    if (in_array($country_code, $country_full_name)) { 

     echo $country_full_name; 

    } 
} 

echo 'Your IP is: ', $ip, '<br>'; 
echo 'and your city ', $location->city, '<br>'; 
echo 'located in ', $country_code,'.'; 
echo $country_full_name; 
+0

'$ country_name ['AF']' – anshuVersatile

+0

'$ country_code' entspricht dem richtigen Schlüssel in' $ country_name'. Sie können einfach '$ country_name [$ country_code]' – billyonecan

+0

Danke für Ihre Hilfe, aber können bist du ein bisschen genauer? Ich möchte $ country_name mit $ country_code übersetzen. – KAZZABE

Antwort

0
<?php 

$ip = getenv('HTTP_CLIENT_IP')?: 
getenv('HTTP_X_FORWARDED_FOR')?: 
getenv('HTTP_X_FORWARDED')?: 
getenv('HTTP_FORWARDED_FOR')?: 
getenv('HTTP_FORWARDED')?: 
getenv('REMOTE_ADDR'); 

$location = json_decode(file_get_contents("http://ipinfo.io/{$ip}")); 

$country_name = array(
    'AF' => 'Afghanistan', 
    'AX' => 'Aland Islands', 
    'AL' => 'Albania', 
    'DZ' => 'Algeria', 
    'AS' => 'American Samoa', 
    'AD' => 'Andorra', 
    'AO' => 'Angola', 
    'AI' => 'Anguilla', 
    'AQ' => 'Antarctica', 
    'AG' => 'Antigua and Barbuda', 
    'AR' => 'Argentina', 
    'AM' => 'Armenia', 
    'AW' => 'Aruba', 
    'AU' => 'Australia', 
    'AT' => 'Austria', 
    'AZ' => 'Azerbaijan', 
    'BS' => 'Bahamas the', 
    'BH' => 'Bahrain', 
    'BD' => 'Bangladesh', 
    'BB' => 'Barbados', 
    'BY' => 'Belarus', 
    'BE' => 'Belgium', 
    'BZ' => 'Belize', 
    'BJ' => 'Benin', 
    'BM' => 'Bermuda', 
    'BT' => 'Bhutan', 
    'BO' => 'Bolivia', 
    'BA' => 'Bosnia and Herzegovina', 
    'BW' => 'Botswana', 
    'BV' => 'Bouvet Island (Bouvetoya)', 
    'BR' => 'Brazil', 
    'IO' => 'British Indian Ocean Territory (Chagos Archipelago)', 
    'VG' => 'British Virgin Islands', 
    'BN' => 'Brunei Darussalam', 
    'BG' => 'Bulgaria', 
    'BF' => 'Burkina Faso', 
    'BI' => 'Burundi', 
    'KH' => 'Cambodia', 
    'CM' => 'Cameroon', 
    'CA' => 'Canada', 
    'CV' => 'Cape Verde', 
    'KY' => 'Cayman Islands', 
    'CF' => 'Central African Republic', 
    'TD' => 'Chad', 
    'CL' => 'Chile', 
    'CN' => 'China', 
    'CX' => 'Christmas Island', 
    'CC' => 'Cocos (Keeling) Islands', 
    'CO' => 'Colombia', 
    'KM' => 'Comoros the', 
    'CD' => 'Congo', 
    'CG' => 'Congo the', 
    'CK' => 'Cook Islands', 
    'CR' => 'Costa Rica', 
    'CI' => 'Cote d\'Ivoire', 
    'HR' => 'Croatia', 
    'CU' => 'Cuba', 
    'CY' => 'Cyprus', 
    'CZ' => 'Czech Republic', 
    'DK' => 'Denmark', 
    'DJ' => 'Djibouti', 
    'DM' => 'Dominica', 
    'DO' => 'Dominican Republic', 
    'EC' => 'Ecuador', 
    'EG' => 'Egypt', 
    'SV' => 'El Salvador', 
    'GQ' => 'Equatorial Guinea', 
    'ER' => 'Eritrea', 
    'EE' => 'Estonia', 
    'ET' => 'Ethiopia', 
    'FO' => 'Faroe Islands', 
    'FK' => 'Falkland Islands (Malvinas)', 
    'FJ' => 'Fiji the Fiji Islands', 
    'FI' => 'Finland', 
    'FR' => 'France, French Republic', 
    'GF' => 'French Guiana', 
    'PF' => 'French Polynesia', 
    'TF' => 'French Southern Territories', 
    'GA' => 'Gabon', 
    'GM' => 'Gambia the', 
    'GE' => 'Georgia', 
    'DE' => 'Germany', 
    'GH' => 'Ghana', 
    'GI' => 'Gibraltar', 
    'GR' => 'Greece', 
    'GL' => 'Greenland', 
    'GD' => 'Grenada', 
    'GP' => 'Guadeloupe', 
    'GU' => 'Guam', 
    'GT' => 'Guatemala', 
    'GG' => 'Guernsey', 
    'GN' => 'Guinea', 
    'GW' => 'Guinea-Bissau', 
    'GY' => 'Guyana', 
    'HT' => 'Haiti', 
    'HM' => 'Heard Island and McDonald Islands', 
    'VA' => 'Holy See (Vatican City State)', 
    'HN' => 'Honduras', 
    'HK' => 'Hong Kong', 
    'HU' => 'Hungary', 
    'IS' => 'Iceland', 
    'IN' => 'India', 
    'ID' => 'Indonesia', 
    'IR' => 'Iran', 
    'IQ' => 'Iraq', 
    'IE' => 'Ireland', 
    'IM' => 'Isle of Man', 
    'IL' => 'Israel', 
    'IT' => 'Italy', 
    'JM' => 'Jamaica', 
    'JP' => 'Japan', 
    'JE' => 'Jersey', 
    'JO' => 'Jordan', 
    'KZ' => 'Kazakhstan', 
    'KE' => 'Kenya', 
    'KI' => 'Kiribati', 
    'KP' => 'Korea', 
    'KR' => 'Korea', 
    'KW' => 'Kuwait', 
    'KG' => 'Kyrgyz Republic', 
    'LA' => 'Lao', 
    'LV' => 'Latvia', 
    'LB' => 'Lebanon', 
    'LS' => 'Lesotho', 
    'LR' => 'Liberia', 
    'LY' => 'Libyan Arab Jamahiriya', 
    'LI' => 'Liechtenstein', 
    'LT' => 'Lithuania', 
    'LU' => 'Luxembourg', 
    'MO' => 'Macao', 
    'MK' => 'Macedonia', 
    'MG' => 'Madagascar', 
    'MW' => 'Malawi', 
    'MY' => 'Malaysia', 
    'MV' => 'Maldives', 
    'ML' => 'Mali', 
    'MT' => 'Malta', 
    'MH' => 'Marshall Islands', 
    'MQ' => 'Martinique', 
    'MR' => 'Mauritania', 
    'MU' => 'Mauritius', 
    'YT' => 'Mayotte', 
    'MX' => 'Mexico', 
    'FM' => 'Micronesia', 
    'MD' => 'Moldova', 
    'MC' => 'Monaco', 
    'MN' => 'Mongolia', 
    'ME' => 'Montenegro', 
    'MS' => 'Montserrat', 
    'MA' => 'Morocco', 
    'MZ' => 'Mozambique', 
    'MM' => 'Myanmar', 
    'NA' => 'Namibia', 
    'NR' => 'Nauru', 
    'NP' => 'Nepal', 
    'AN' => 'Netherlands Antilles', 
    'NL' => 'Netherlands the', 
    'NC' => 'New Caledonia', 
    'NZ' => 'New Zealand', 
    'NI' => 'Nicaragua', 
    'NE' => 'Niger', 
    'NG' => 'Nigeria', 
    'NU' => 'Niue', 
    'NF' => 'Norfolk Island', 
    'MP' => 'Northern Mariana Islands', 
    'NO' => 'Norway', 
    'OM' => 'Oman', 
    'PK' => 'Pakistan', 
    'PW' => 'Palau', 
    'PS' => 'Palestinian Territory', 
    'PA' => 'Panama', 
    'PG' => 'Papua New Guinea', 
    'PY' => 'Paraguay', 
    'PE' => 'Peru', 
    'PH' => 'Philippines', 
    'PN' => 'Pitcairn Islands', 
    'PL' => 'Poland', 
    'PT' => 'Portugal, Portuguese Republic', 
    'PR' => 'Puerto Rico', 
    'QA' => 'Qatar', 
    'RE' => 'Reunion', 
    'RO' => 'Romania', 
    'RU' => 'Russian Federation', 
    'RW' => 'Rwanda', 
    'BL' => 'Saint Barthelemy', 
    'SH' => 'Saint Helena', 
    'KN' => 'Saint Kitts and Nevis', 
    'LC' => 'Saint Lucia', 
    'MF' => 'Saint Martin', 
    'PM' => 'Saint Pierre and Miquelon', 
    'VC' => 'Saint Vincent and the Grenadines', 
    'WS' => 'Samoa', 
    'SM' => 'San Marino', 
    'ST' => 'Sao Tome and Principe', 
    'SA' => 'Saudi Arabia', 
    'SN' => 'Senegal', 
    'RS' => 'Serbia', 
    'SC' => 'Seychelles', 
    'SL' => 'Sierra Leone', 
    'SG' => 'Singapore', 
    'SK' => 'Slovakia (Slovak Republic)', 
    'SI' => 'Slovenia', 
    'SB' => 'Solomon Islands', 
    'SO' => 'Somalia, Somali Republic', 
    'ZA' => 'South Africa', 
    'GS' => 'South Georgia and the South Sandwich Islands', 
    'ES' => 'Spain', 
    'LK' => 'Sri Lanka', 
    'SD' => 'Sudan', 
    'SR' => 'Suriname', 
    'SJ' => 'Svalbard & Jan Mayen Islands', 
    'SZ' => 'Swaziland', 
    'SE' => 'Sweden', 
    'CH' => 'Switzerland, Swiss Confederation', 
    'SY' => 'Syrian Arab Republic', 
    'TW' => 'Taiwan', 
    'TJ' => 'Tajikistan', 
    'TZ' => 'Tanzania', 
    'TH' => 'Thailand', 
    'TL' => 'Timor-Leste', 
    'TG' => 'Togo', 
    'TK' => 'Tokelau', 
    'TO' => 'Tonga', 
    'TT' => 'Trinidad and Tobago', 
    'TN' => 'Tunisia', 
    'TR' => 'Turkey', 
    'TM' => 'Turkmenistan', 
    'TC' => 'Turks and Caicos Islands', 
    'TV' => 'Tuvalu', 
    'UG' => 'Uganda', 
    'UA' => 'Ukraine', 
    'AE' => 'United Arab Emirates', 
    'GB' => 'United Kingdom', 
    'US' => 'United States of America', 
    'UM' => 'United States Minor Outlying Islands', 
    'VI' => 'United States Virgin Islands', 
    'UY' => 'Uruguay, Eastern Republic of', 
    'UZ' => 'Uzbekistan', 
    'VU' => 'Vanuatu', 
    'VE' => 'Venezuela', 
    'VN' => 'Vietnam', 
    'WF' => 'Wallis and Futuna', 
    'EH' => 'Western Sahara', 
    'YE' => 'Yemen', 
    'ZM' => 'Zambia', 
    'ZW' => 'Zimbabwe' 
); 

$country_code = $location->country; 
$country_full_name = $country_name[$country_code]; 

echo 'Your IP is: ', $ip, '<br>'; 
echo 'and your city ', $location->city, '<br>'; 
echo 'located in ', $country_code,'<br>'; 
echo 'Your Country is: ', $country_full_name, '.'; 
+0

Ich werde versuchen, Sie wissen @anshuVersatile – KAZZABE

+0

Ich habe es getestet und ich bekomme diesen Fehler: ** Parse Fehler: Syntaxfehler, unerwartete 'Echo' (T_ECHO) in /homepages/3/d598706495/htdocs/wp-content/uploads/ip.php on line 267 ** – KAZZABE

+0

Welchen Fehler haben Sie? – anshuVersatile

1

Als ich durch die Kommentare geschaut haben, ich nehme an, Sie immer noch nicht verstehen, wie die Idee von billyonecan Werke erwähnt. Das ist der Grund, warum ich antwortete. Mach es nicht kompliziert. Wenn Sie einen Ländercode ES hatten und in diesem Fall den entsprechenden Ländernamen Spain abrufen wollten, können Sie einfach mit dem Schlüssel auf den Ländernamen im Array zugreifen. Hier ist der Schlüssel ES und der Code ist:

$country_code = $location->country; 
$country_full_name = $country_name[$country_code]; // Accessing ES => Spain 

$country_name[$country_code] gleiche ist wie bei $country_name['ES'] tun, wenn die Variable $country_code den Wert von ES enthält.

Ich kann nicht besser als das erklären. Ich hoffe du hast es verstanden. :)

+0

Jetzt sehe ich es klar. Die Hilfe war wirklich nützlich. Am Ende läuft es. Ich habe nur die "foreach" -Anweisung entfernt und gibt mir jetzt die erwartete Ausgabe. – KAZZABE

+0

Ja. Sie brauchen dafür überhaupt keine 'foreach'. Nur eine einzige Zeile Aussage ist in Ihrem Fall genug. – Perumal

+0

Sehen Sie es live [hier] (http://kazzabe.com.es/wp-content/uploads/get_country.php) – KAZZABE

Verwandte Themen