1
0
mirror of https://github.com/nerzhul/ocsms.git synced 2025-06-07 07:56:23 +00:00
ocsms/lib/countrycodes.php
Greg Ross 6e86c48486 Updated phone formatter (#241)
* Add locale and libphonenumber libraries.

* Update country code information

Updated existing country codes, fixed incorrect NANP codes for member countries (as well as several UK based ones).

Also added in Country Name to ISO country code mapping array for use with libphonenumber.

* Convert phone number formatting to use libphonenumber

libphonenumber parses phone number more consistantly than the old regex's that mismatched number on a regular basis.
2018-06-26 09:49:22 +02:00

511 lines
12 KiB
PHP

<?php
/**
* Nextcloud - Phone Sync
*
* This file is licensed under the Affero General Public License version 3 or
* later. See the COPYING file.
*
* Reference:
* [1] Country Codes: https://countrycode.org/
*
* Note: The above country code list mistakenly references some countries as
* (code)+(exchance), so for example, the Cayman Islands is listed as
* "1-345", however it is really part of NANP and so it's country code
* is actually "1". The below entries correct this so that each country
* has a single country code.
*
* @author Loic Blot <loic.blot@unix-experience.fr>
* @contributor: stagprom <https://github.com/stagprom/>
* @copyright Loic Blot 2014-2017
*/
namespace OCA\OcSms\Lib;
class CountryCodes {
public static $codes = array(
'Afghanistan' => '+93',
'Albania' => '+355',
'Algeria' => '+213',
'American Samoa' => '+1',
'Andorra' => '+376',
'Angola' => '+244',
'Anguilla' => '+1',
'Antarctica' => '+672',
'Antigua and Barbuda' => '+1',
'Argentina' => '+54',
'Armenia' => '+374',
'Aruba' => '+297',
'Australia' => '+61',
'Austria' => '+43',
'Azerbaijan' => '+994',
'Bahamas' => '+1',
'Bahrain' => '+973',
'Bangladesh' => '+880',
'Barbados' => '+1',
'Belarus' => '+375',
'Belgium' => '+32',
'Belize' => '+501',
'Benin' => '+229',
'Bermuda' => '+1',
'Bhutan' => '+975',
'Bolivia' => '+591',
'Bosnia and Herzegovina' => '+387',
'Botswana' => '+267',
'Brazil' => '+55',
'British Indian Ocean Territory' => '+246',
'British Virgin Islands' => '+1',
'Brunei' => '+673',
'Bulgaria' => '+359',
'Burkina Faso' => '+226',
'Burundi' => '+257',
'Cambodia' => '+855',
'Cameroon' => '+237',
'Canada' => '+1',
'Cape Verde' => '+238',
'Cayman Islands' => '+1',
'Central African Republic' => '+236',
'Chad' => '+235',
'Chile' => '+56',
'China' => '+86',
'Christmas Island' => '+61',
'Cocos Islands' => '+61',
'Colombia' => '+57',
'Comoros' => '+269',
'Cook Islands' => '+682',
'Costa Rica' => '+506',
'Croatia' => '+385',
'Cuba' => '+53',
'Curacao' => '+599',
'Cyprus' => '+357',
'Czech Republic' => '+420',
'Democratic Republic of the Congo' => '+243',
'Denmark' => '+45',
'Djibouti' => '+253',
'Dominica' => '+1',
'Dominican Republic' => '+1',
'East Timor' => '+670',
'Ecuador' => '+593',
'Egypt' => '+20',
'El Salvador' => '+503',
'Equatorial Guinea' => '+240',
'Eritrea' => '+291',
'Estonia' => '+372',
'Ethiopia' => '+251',
'Falkland Islands' => '+500',
'Faroe Islands' => '+298',
'Fiji' => '+679',
'Finland' => '+358',
'France' => '+33',
'French Polynesia' => '+689',
'Gabon' => '+241',
'Gambia' => '+220',
'Georgia' => '+995',
'Germany' => '+49',
'Ghana' => '+233',
'Gibraltar' => '+350',
'Greece' => '+30',
'Greenland' => '+299',
'Grenada' => '+1',
'Guam' => '+1',
'Guatemala' => '+502',
'Guernsey' => '+44',
'Guinea' => '+224',
'Guinea-Bissau' => '+245',
'Guyana' => '+592',
'Haiti' => '+509',
'Honduras' => '+504',
'Hong Kong' => '+852',
'Hungary' => '+36',
'Iceland' => '+354',
'India' => '+91',
'Indonesia' => '+62',
'Iran' => '+98',
'Iraq' => '+964',
'Ireland' => '+353',
'Isle of Man' => '+44',
'Israel' => '+972',
'Italy' => '+39',
'Ivory Coast' => '+225',
'Jamaica' => '+1',
'Japan' => '+81',
'Jersey' => '+44',
'Jordan' => '+962',
'Kazakhstan' => '+7',
'Kenya' => '+254',
'Kiribati' => '+686',
'Kosovo' => '+383',
'Kuwait' => '+965',
'Kyrgyzstan' => '+996',
'Laos' => '+856',
'Latvia' => '+371',
'Lebanon' => '+961',
'Lesotho' => '+266',
'Liberia' => '+231',
'Libya' => '+218',
'Liechtenstein' => '+423',
'Lithuania' => '+370',
'Luxembourg' => '+352',
'Macau' => '+853',
'Macedonia' => '+389',
'Madagascar' => '+261',
'Malawi' => '+265',
'Malaysia' => '+60',
'Maldives' => '+960',
'Mali' => '+223',
'Malta' => '+356',
'Marshall Islands' => '+692',
'Mauritania' => '+222',
'Mauritius' => '+230',
'Mayotte' => '+262',
'Mexico' => '+52',
'Micronesia' => '+691',
'Moldova' => '+373',
'Monaco' => '+377',
'Mongolia' => '+976',
'Montenegro' => '+382',
'Montserrat' => '+1',
'Morocco' => '+212',
'Mozambique' => '+258',
'Myanmar' => '+95',
'Namibia' => '+264',
'Nauru' => '+674',
'Nepal' => '+977',
'Netherlands' => '+31',
'Netherlands Antilles' => '+599',
'New Caledonia' => '+687',
'New Zealand' => '+64',
'Nicaragua' => '+505',
'Niger' => '+227',
'Nigeria' => '+234',
'Niue' => '+683',
'North Korea' => '+850',
'Northern Mariana Islands' => '+1',
'Norway' => '+47',
'Oman' => '+968',
'Pakistan' => '+92',
'Palau' => '+680',
'Palestine' => '+970',
'Panama' => '+507',
'Papua New Guinea' => '+675',
'Paraguay' => '+595',
'Peru' => '+51',
'Philippines' => '+63',
'Pitcairn' => '+64',
'Poland' => '+48',
'Portugal' => '+351',
'Puerto Rico' => '+1',
'Qatar' => '+974',
'Republic of the Congo' => '+242',
'Reunion' => '+262',
'Romania' => '+40',
'Russia' => '+7',
'Rwanda' => '+250',
'Saint Barthelemy' => '+590',
'Saint Helena' => '+290',
'Saint Kitts and Nevis' => '+1',
'Saint Lucia' => '+1',
'Saint Martin' => '+590',
'Saint Pierre and Miquelon' => '+508',
'Saint Vincent and the Grenadines' => '+1',
'Samoa' => '+685',
'San Marino' => '+378',
'Sao Tome and Principe' => '+239',
'Saudi Arabia' => '+966',
'Senegal' => '+221',
'Serbia' => '+381',
'Seychelles' => '+248',
'Sierra Leone' => '+232',
'Singapore' => '+65',
'Sint Maarten' => '+1',
'Slovakia' => '+421',
'Slovenia' => '+386',
'Solomon Islands' => '+677',
'Somalia' => '+252',
'South Africa' => '+27',
'South Korea' => '+82',
'South Sudan' => '+211',
'Spain' => '+34',
'Sri Lanka' => '+94',
'Sudan' => '+249',
'Suriname' => '+597',
'Svalbard and Jan Mayen' => '+47',
'Swaziland' => '+268',
'Sweden' => '+46',
'Switzerland' => '+41',
'Syria' => '+963',
'Taiwan' => '+886',
'Tajikistan' => '+992',
'Tanzania' => '+255',
'Thailand' => '+66',
'Togo' => '+228',
'Tokelau' => '+690',
'Tonga' => '+676',
'Trinidad and Tobago' => '+1',
'Tunisia' => '+216',
'Turkey' => '+90',
'Turkmenistan' => '+993',
'Turks and Caicos Islands' => '+1',
'Tuvalu' => '+688',
'U.S. Virgin Islands' => '+1',
'Uganda' => '+256',
'Ukraine' => '+380',
'United Arab Emirates' => '+971',
'United Kingdom' => '+44',
'United States' => '+1',
'Uruguay' => '+598',
'Uzbekistan' => '+998',
'Vanuatu' => '+678',
'Vatican' => '+379',
'Venezuela' => '+58',
'Vietnam' => '+84',
'Wallis and Futuna' => '+681',
'Western Sahara' => '+212',
'Yemen' => '+967',
'Zambia' => '+260',
'Zimbabwe' => '+263',
);
public static $countries = array(
'Afghanistan' => 'AF',
'Albania' => 'AL',
'Algeria' => 'DZ',
'American Samoa' => 'AS',
'Andorra' => 'AD',
'Angola' => 'AO',
'Anguilla' => 'AI',
'Antarctica' => 'AQ',
'Antigua and Barbuda' => 'AG',
'Argentina' => 'AR',
'Armenia' => 'AM',
'Aruba' => 'AW',
'Australia' => 'AU',
'Austria' => 'AT',
'Azerbaijan' => 'AZ',
'Bahamas' => 'BS',
'Bahrain' => 'BH',
'Bangladesh' => 'BD',
'Barbados' => 'BB',
'Belarus' => 'BY',
'Belgium' => 'BE',
'Belize' => 'BZ',
'Benin' => 'BJ',
'Bermuda' => 'BM',
'Bhutan' => 'BT',
'Bolivia' => 'BO',
'Bosnia and Herzegovina' => 'BA',
'Botswana' => 'BW',
'Brazil' => 'BR',
'British Indian Ocean Territory' => 'IO',
'British Virgin Islands' => 'VG',
'Brunei' => 'BN',
'Bulgaria' => 'BG',
'Burkina Faso' => 'BF',
'Burundi' => 'BI',
'Cambodia' => 'KH',
'Cameroon' => 'CM',
'Canada' => 'CA',
'Cape Verde' => 'CV',
'Cayman Islands' => 'KY',
'Central African Republic' => 'CF',
'Chad' => 'TD',
'Chile' => 'CL',
'China' => 'CN',
'Christmas Island' => 'CX',
'Cocos Islands' => 'CC',
'Colombia' => 'CO',
'Comoros' => 'KM',
'Cook Islands' => 'CK',
'Costa Rica' => 'CR',
'Croatia' => 'HR',
'Cuba' => 'CU',
'Curacao' => 'CW',
'Cyprus' => 'CY',
'Czech Republic' => 'CZ',
'Democratic Republic of the Congo' => 'CD',
'Denmark' => 'DK',
'Djibouti' => 'DJ',
'Dominica' => 'DM',
'Dominican Republic' => 'DO',
'East Timor' => 'TL',
'Ecuador' => 'EC',
'Egypt' => 'EG',
'El Salvador' => 'SV',
'Equatorial Guinea' => 'GQ',
'Eritrea' => 'ER',
'Estonia' => 'EE',
'Ethiopia' => 'ET',
'Falkland Islands' => 'FK',
'Faroe Islands' => 'FO',
'Fiji' => 'FJ',
'Finland' => 'FI',
'France' => 'FR',
'French Polynesia' => 'PF',
'Gabon' => 'GA',
'Gambia' => 'GM',
'Georgia' => 'GE',
'Germany' => 'DE',
'Ghana' => 'GH',
'Gibraltar' => 'GI',
'Greece' => 'GR',
'Greenland' => 'GL',
'Grenada' => 'GD',
'Guam' => 'GU',
'Guatemala' => 'GT',
'Guernsey' => 'GG',
'Guinea' => 'GN',
'Guinea-Bissau' => 'GW',
'Guyana' => 'GY',
'Haiti' => 'HT',
'Honduras' => 'HN',
'Hong Kong' => 'HK',
'Hungary' => 'HU',
'Iceland' => 'IS',
'India' => 'IN',
'Indonesia' => 'ID',
'Iran' => 'IR',
'Iraq' => 'IQ',
'Ireland' => 'IE',
'Isle of Man' => 'IM',
'Israel' => 'IL',
'Italy' => 'IT',
'Ivory Coast' => 'CI',
'Jamaica' => 'JM',
'Japan' => 'JP',
'Jersey' => 'JE',
'Jordan' => 'JO',
'Kazakhstan' => 'KZ',
'Kenya' => 'KE',
'Kiribati' => 'KI',
'Kosovo' => 'XK',
'Kuwait' => 'KW',
'Kyrgyzstan' => 'KG',
'Laos' => 'LA',
'Latvia' => 'LV',
'Lebanon' => 'LB',
'Lesotho' => 'LS',
'Liberia' => 'LR',
'Libya' => 'LY',
'Liechtenstein' => 'LI',
'Lithuania' => 'LT',
'Luxembourg' => 'LU',
'Macau' => 'MO',
'Macedonia' => 'MK',
'Madagascar' => 'MG',
'Malawi' => 'MW',
'Malaysia' => 'MY',
'Maldives' => 'MV',
'Mali' => 'ML',
'Malta' => 'MT',
'Marshall Islands' => 'MH',
'Mauritania' => 'MR',
'Mauritius' => 'MU',
'Mayotte' => 'YT',
'Mexico' => 'MX',
'Micronesia' => 'FM',
'Moldova' => 'MD',
'Monaco' => 'MC',
'Mongolia' => 'MN',
'Montenegro' => 'ME',
'Montserrat' => 'MS',
'Morocco' => 'MA',
'Mozambique' => 'MZ',
'Myanmar' => 'MM',
'Namibia' => 'NA',
'Nauru' => 'NR',
'Nepal' => 'NP',
'Netherlands' => 'NL',
'Netherlands Antilles' => 'AN',
'New Caledonia' => 'NC',
'New Zealand' => 'NZ',
'Nicaragua' => 'NI',
'Niger' => 'NE',
'Nigeria' => 'NG',
'Niue' => 'NU',
'North Korea' => 'KP',
'Northern Mariana Islands' => 'MP',
'Norway' => 'NO',
'Oman' => 'OM',
'Pakistan' => 'PK',
'Palau' => 'PW',
'Palestine' => 'PS',
'Panama' => 'PA',
'Papua New Guinea' => 'PG',
'Paraguay' => 'PY',
'Peru' => 'PE',
'Philippines' => 'PH',
'Pitcairn' => 'PN',
'Poland' => 'PL',
'Portugal' => 'PT',
'Puerto Rico' => 'PR',
'Qatar' => 'QA',
'Republic of the Congo' => 'CG',
'Reunion' => 'RE',
'Romania' => 'RO',
'Russia' => 'RU',
'Rwanda' => 'RW',
'Saint Barthelemy' => 'BL',
'Saint Helena' => 'SH',
'Saint Kitts and Nevis' => 'KN',
'Saint Lucia' => 'LC',
'Saint Martin' => 'MF',
'Saint Pierre and Miquelon' => 'PM',
'Saint Vincent and the Grenadines' => 'VC',
'Samoa' => 'WS',
'San Marino' => 'SM',
'Sao Tome and Principe' => 'ST',
'Saudi Arabia' => 'SA',
'Senegal' => 'SN',
'Serbia' => 'RS',
'Seychelles' => 'SC',
'Sierra Leone' => 'SL',
'Singapore' => 'SG',
'Sint Maarten' => 'SX',
'Slovakia' => 'SK',
'Slovenia' => 'SI',
'Solomon Islands' => 'SB',
'Somalia' => 'SO',
'South Africa' => 'ZA',
'South Korea' => 'KR',
'South Sudan' => 'SS',
'Spain' => 'ES',
'Sri Lanka' => 'LK',
'Sudan' => 'SD',
'Suriname' => 'SR',
'Svalbard and Jan Mayen' => 'SJ',
'Swaziland' => 'SZ',
'Sweden' => 'SE',
'Switzerland' => 'CH',
'Syria' => 'SY',
'Taiwan' => 'TW',
'Tajikistan' => 'TJ',
'Tanzania' => 'TZ',
'Thailand' => 'TH',
'Togo' => 'TG',
'Tokelau' => 'TK',
'Tonga' => 'TO',
'Trinidad and Tobago' => 'TT',
'Tunisia' => 'TN',
'Turkey' => 'TR',
'Turkmenistan' => 'TM',
'Turks and Caicos Islands' => 'TC',
'Tuvalu' => 'TV',
'U.S. Virgin Islands' => 'VI',
'Uganda' => 'UG',
'Ukraine' => 'UA',
'United Arab Emirates' => 'AE',
'United Kingdom' => 'GB',
'United States' => 'US',
'Uruguay' => 'UY',
'Uzbekistan' => 'UZ',
'Vanuatu' => 'VU',
'Vatican' => 'VA',
'Venezuela' => 'VE',
'Vietnam' => 'VN',
'Wallis and Futuna' => 'WF',
'Western Sahara' => 'EH',
'Yemen' => 'YE',
'Zambia' => 'ZM',
'Zimbabwe' => 'ZW',
);
};