cck_phone_countrycodes.inc 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269
  1. <?php
  2. /**
  3. * @file
  4. * Defines country codes for Phone Number.
  5. * Provide country name and international codes per country codes.
  6. */
  7. /**
  8. * Get all the country codes for supported countries.
  9. *
  10. * @param $cc
  11. * Optional, two character country code. If this is ommitted all country codes
  12. * will be returned.
  13. * @return
  14. * If no country code is provided an array keyed by country code, values are
  15. * arrays with a 'country' and 'code' values. If an invalid $cc is provided,
  16. * FALSE will be returned. If the country code is valid the country code for
  17. * that country will be returned.
  18. */
  19. function cck_phone_countrycodes($cc = NULL) {
  20. // Alpha-2 codes from ISO 3166-1 http://en.wikipedia.org/wiki/ISO_3166-1
  21. // Country codes from http://en.wikipedia.org/wiki/Country_calling_code
  22. static $country_code;
  23. if (!isset($country_code)) {
  24. $country_code = array(
  25. 'af' => array('country' => t('Afghanistan'), 'code' => '+93'),
  26. 'al' => array('country' => t('Albania'), 'code' => '+355'),
  27. 'dz' => array('country' => t('Algeria'), 'code' => '+213'),
  28. 'as' => array('country' => t('American Samoa'), 'code' => '+1'),
  29. 'ad' => array('country' => t('Andorra'), 'code' => '+376'),
  30. 'ao' => array('country' => t('Angola'), 'code' => '+244'),
  31. 'ai' => array('country' => t('Anguilla'), 'code' => '+1'),
  32. 'ag' => array('country' => t('Antigua and Barbuda'), 'code' => '+1'),
  33. 'ar' => array('country' => t('Argentina'), 'code' => '+54'),
  34. 'am' => array('country' => t('Armenia'), 'code' => '+374'),
  35. 'aw' => array('country' => t('Aruba'), 'code' => '+297'),
  36. 'au' => array('country' => t('Australia'), 'code' => '+61'),
  37. 'at' => array('country' => t('Austria'), 'code' => '+43'),
  38. 'az' => array('country' => t('Azerbaijan'), 'code' => '+994'),
  39. 'bs' => array('country' => t('Bahamas, The'), 'code' => '+1'),
  40. 'bh' => array('country' => t('Bahrain'), 'code' => '+973'),
  41. 'bd' => array('country' => t('Bangladesh'), 'code' => '+880'),
  42. 'bb' => array('country' => t('Barbados'), 'code' => '+1'),
  43. 'by' => array('country' => t('Belarus'), 'code' => '+375'),
  44. 'be' => array('country' => t('Belgium'), 'code' => '+32'),
  45. 'bz' => array('country' => t('Belize'), 'code' => '+501'),
  46. 'bj' => array('country' => t('Benin'), 'code' => '+229'),
  47. 'bm' => array('country' => t('Bermuda'), 'code' => '+1'),
  48. 'bt' => array('country' => t('Bhutan'), 'code' => '+975'),
  49. 'bo' => array('country' => t('Bolivia'), 'code' => '+591'),
  50. 'ba' => array('country' => t('Bosnia and Herzegovina'), 'code' => '+387'),
  51. 'bw' => array('country' => t('Botswana'), 'code' => '+267'),
  52. 'br' => array('country' => t('Brazil'), 'code' => '+55'),
  53. 'io' => array('country' => t('British Indian Ocean Territory'), 'code' => '+246'),
  54. 'vg' => array('country' => t('British Virgin Islands'), 'code' => '+1'),
  55. 'bn' => array('country' => t('Brunei'), 'code' => '+673'),
  56. 'bg' => array('country' => t('Bulgaria'), 'code' => '+359'),
  57. 'bf' => array('country' => t('Burkina Faso'), 'code' => '+226'),
  58. 'bi' => array('country' => t('Burundi'), 'code' => '+257'),
  59. 'kh' => array('country' => t('Cambodia'), 'code' => '+855'),
  60. 'cm' => array('country' => t('Cameroon'), 'code' => '+237'),
  61. 'ca' => array('country' => t('Canada'), 'code' => '+1'),
  62. 'cv' => array('country' => t('Cape Verde'), 'code' => '+238'),
  63. 'ky' => array('country' => t('Cayman Islands'), 'code' => '+1'),
  64. 'cf' => array('country' => t('Central African Republic'), 'code' => '+236'),
  65. 'td' => array('country' => t('Chad'), 'code' => '+235'),
  66. 'cl' => array('country' => t('Chile'), 'code' => '+56'),
  67. 'cn' => array('country' => t('China'), 'code' => '+86'),
  68. 'cx' => array('country' => t('Christmas Island'), 'code' => '+61'),
  69. 'cc' => array('country' => t('Cocos-Keeling Islands'), 'code' => '+61'),
  70. 'co' => array('country' => t('Colombia'), 'code' => '+57'),
  71. 'km' => array('country' => t('Comoros'), 'code' => '+269'),
  72. 'cg' => array('country' => t('Congo, Republic of the'), 'code' => '+242'),
  73. 'cd' => array('country' => t('Congo, Democratic Republic of'), 'code' => '+243'),
  74. 'ck' => array('country' => t('Cook Islands'), 'code' => '+682'),
  75. 'cr' => array('country' => t('Costa Rica'), 'code' => '+506'),
  76. 'hr' => array('country' => t('Croatia'), 'code' => '+385'),
  77. 'cu' => array('country' => t('Cuba'), 'code' => '+53'),
  78. 'cy' => array('country' => t('Cyprus'), 'code' => '+357'),
  79. 'cz' => array('country' => t('Czech Republic'), 'code' => '+420'),
  80. 'dk' => array('country' => t('Denmark'), 'code' => '+45'),
  81. 'dj' => array('country' => t('Djibouti'), 'code' => '+253'),
  82. 'dm' => array('country' => t('Dominica'), 'code' => '+1'),
  83. 'do' => array('country' => t('Dominican Republic'), 'code' => '+1'),
  84. 'tp' => array('country' => t('East Timor'), 'code' => '+670'),
  85. 'ec' => array('country' => t('Ecuador'), 'code' => '+593'),
  86. 'eg' => array('country' => t('Egypt'), 'code' => '+20'),
  87. 'sv' => array('country' => t('El Salvador'), 'code' => '+503'),
  88. 'gq' => array('country' => t('Equatorial Guinea'), 'code' => '+240'),
  89. 'er' => array('country' => t('Eritrea'), 'code' => '+291'),
  90. 'ee' => array('country' => t('Estonia'), 'code' => '+372'),
  91. 'et' => array('country' => t('Ethiopia'), 'code' => '+251'),
  92. 'fk' => array('country' => t('Falkland Islands'), 'code' => '+500'),
  93. 'fo' => array('country' => t('Faroe Islands'), 'code' => '+298'),
  94. 'fj' => array('country' => t('Fiji'), 'code' => '+679'),
  95. 'fi' => array('country' => t('Finland'), 'code' => '+358'),
  96. 'fr' => array('country' => t('France'), 'code' => '+33'),
  97. 'gf' => array('country' => t('French Guiana'), 'code' => '+594'),
  98. 'pf' => array('country' => t('French Polynesia'), 'code' => '+689'),
  99. 'ga' => array('country' => t('Gabon'), 'code' => '+241'),
  100. 'gm' => array('country' => t('Gambia, The'), 'code' => '+220'),
  101. 'ge' => array('country' => t('Georgia'), 'code' => '+995'),
  102. 'de' => array('country' => t('Germany'), 'code' => '+49'),
  103. 'gh' => array('country' => t('Ghana'), 'code' => '+233'),
  104. 'gi' => array('country' => t('Gibraltar'), 'code' => '+350'),
  105. 'gr' => array('country' => t('Greece'), 'code' => '+30'),
  106. 'gl' => array('country' => t('Greenland'), 'code' => '+299'),
  107. 'gd' => array('country' => t('Grenada'), 'code' => '+1'),
  108. 'gp' => array('country' => t('Guadeloupe'), 'code' => '+590'),
  109. 'gu' => array('country' => t('Guam'), 'code' => '+1'),
  110. 'gt' => array('country' => t('Guatemala'), 'code' => '+502'),
  111. 'gn' => array('country' => t('Guinea'), 'code' => '+224'),
  112. 'gw' => array('country' => t('Guinea-Bissau'), 'code' => '+245'),
  113. 'gy' => array('country' => t('Guyana'), 'code' => '+592'),
  114. 'ht' => array('country' => t('Haiti'), 'code' => '+509'),
  115. 'hn' => array('country' => t('Honduras'), 'code' => '+504'),
  116. 'hk' => array('country' => t('Hong Kong'), 'code' => '+852'),
  117. 'hu' => array('country' => t('Hungary'), 'code' => '+36'),
  118. 'is' => array('country' => t('Iceland'), 'code' => '+354'),
  119. 'in' => array('country' => t('India'), 'code' => '+91'),
  120. 'id' => array('country' => t('Indonesia'), 'code' => '+62'),
  121. 'ir' => array('country' => t('Iran'), 'code' => '+98'),
  122. 'iq' => array('country' => t('Iraq'), 'code' => '+964'),
  123. 'ie' => array('country' => t('Ireland'), 'code' => '+353'),
  124. 'il' => array('country' => t('Israel'), 'code' => '+972'),
  125. 'it' => array('country' => t('Italy'), 'code' => '+39'),
  126. 'ci' => array('country' => t('Ivory Coast'), 'code' => '+225'),
  127. 'jm' => array('country' => t('Jamaica'), 'code' => '+1'),
  128. 'jp' => array('country' => t('Japan'), 'code' => '+81'),
  129. 'jo' => array('country' => t('Jordan'), 'code' => '+962'),
  130. 'kz' => array('country' => t('Kazakhstan'), 'code' => '+7'),
  131. 'ke' => array('country' => t('Kenya'), 'code' => '+254'),
  132. 'ki' => array('country' => t('Kiribati'), 'code' => '+686'),
  133. 'kw' => array('country' => t('Kuwait'), 'code' => '+965'),
  134. 'kg' => array('country' => t('Kyrgyzstan'), 'code' => '+996'),
  135. 'la' => array('country' => t('Laos'), 'code' => '+856'),
  136. 'lv' => array('country' => t('Latvia'), 'code' => '+371'),
  137. 'lb' => array('country' => t('Lebanon'), 'code' => '+961'),
  138. 'ls' => array('country' => t('Lesotho'), 'code' => '+266'),
  139. 'lr' => array('country' => t('Liberia'), 'code' => '+231'),
  140. 'ly' => array('country' => t('Libya'), 'code' => '+218'),
  141. 'li' => array('country' => t('Liechtenstein'), 'code' => '+423'),
  142. 'lt' => array('country' => t('Lithuania'), 'code' => '+370'),
  143. 'lu' => array('country' => t('Luxembourg'), 'code' => '+352'),
  144. 'mo' => array('country' => t('Macau'), 'code' => '+853'),
  145. 'mk' => array('country' => t('Macedonia'), 'code' => '+389'),
  146. 'mg' => array('country' => t('Madagascar'), 'code' => '+261'),
  147. 'mw' => array('country' => t('Malawi'), 'code' => '+265'),
  148. 'my' => array('country' => t('Malaysia'), 'code' => '+60'),
  149. 'mv' => array('country' => t('Maldives'), 'code' => '+960'),
  150. 'ml' => array('country' => t('Mali'), 'code' => '+223'),
  151. 'mt' => array('country' => t('Malta'), 'code' => '+356'),
  152. 'mh' => array('country' => t('Marshall Islands'), 'code' => '+692'),
  153. 'mq' => array('country' => t('Martinique'), 'code' => '+596'),
  154. 'mr' => array('country' => t('Mauritania'), 'code' => '+222'),
  155. 'mu' => array('country' => t('Mauritius'), 'code' => '+230'),
  156. 'yt' => array('country' => t('Mayotte'), 'code' => '+269'),
  157. 'mx' => array('country' => t('Mexico'), 'code' => '+52'),
  158. 'fm' => array('country' => t('Micronesia, Federated States of'), 'code' => '+691'),
  159. 'md' => array('country' => t('Moldova'), 'code' => '+373'),
  160. 'mc' => array('country' => t('Monaco'), 'code' => '+377'),
  161. 'mn' => array('country' => t('Mongolia'), 'code' => '+976'),
  162. 'me' => array('country' => t('Montenegro'), 'code' => '+382'),
  163. 'ms' => array('country' => t('Montserrat'), 'code' => '+1'),
  164. 'ma' => array('country' => t('Morocco'), 'code' => '+212'),
  165. 'mz' => array('country' => t('Mozambique'), 'code' => '+258'),
  166. 'mm' => array('country' => t('Myanmar'), 'code' => '+95'),
  167. 'na' => array('country' => t('Namibia'), 'code' => '+264'),
  168. 'nr' => array('country' => t('Nauru'), 'code' => '+674'),
  169. 'np' => array('country' => t('Nepal'), 'code' => '+977'),
  170. 'nl' => array('country' => t('Netherlands'), 'code' => '+31'),
  171. 'an' => array('country' => t('Netherlands Antilles'), 'code' => '+599'),
  172. 'nc' => array('country' => t('New Caledonia'), 'code' => '+687'),
  173. 'nz' => array('country' => t('New Zealand'), 'code' => '+64'),
  174. 'ni' => array('country' => t('Nicaragua'), 'code' => '+505'),
  175. 'ne' => array('country' => t('Niger'), 'code' => '+227'),
  176. 'ng' => array('country' => t('Nigeria'), 'code' => '+234'),
  177. 'nu' => array('country' => t('Niue'), 'code' => '+683'),
  178. 'nf' => array('country' => t('Norfolk Island'), 'code' => '+672'),
  179. 'kp' => array('country' => t('North Korea'), 'code' => '+850'),
  180. 'mp' => array('country' => t('Northern Mariana Islands'), 'code' => '+1'),
  181. 'no' => array('country' => t('Norway'), 'code' => '+47'),
  182. 'om' => array('country' => t('Oman'), 'code' => '+968'),
  183. 'pk' => array('country' => t('Pakistan'), 'code' => '+92'),
  184. 'pw' => array('country' => t('Palau'), 'code' => '+680'),
  185. 'ps' => array('country' => t('Palestine'), 'code' => '+970'),
  186. 'pa' => array('country' => t('Panama'), 'code' => '+507'),
  187. 'pg' => array('country' => t('Papua New Guinea'), 'code' => '+675'),
  188. 'py' => array('country' => t('Paraguay'), 'code' => '+595'),
  189. 'pe' => array('country' => t('Peru'), 'code' => '+51'),
  190. 'ph' => array('country' => t('Philippines'), 'code' => '+63'),
  191. 'pl' => array('country' => t('Poland'), 'code' => '+48'),
  192. 'pt' => array('country' => t('Portugal'), 'code' => '+351'),
  193. 'pr' => array('country' => t('Puerto Rico'), 'code' => '+1'),
  194. 'qa' => array('country' => t('Qatar'), 'code' => '+974'),
  195. 'ro' => array('country' => t('Romania'), 'code' => '+40'),
  196. 'ru' => array('country' => t('Russia'), 'code' => '+7'),
  197. 'rw' => array('country' => t('Rwanda'), 'code' => '+250'),
  198. 'sh' => array('country' => t('Saint Helena'), 'code' => '+290'),
  199. 'kn' => array('country' => t('Saint Kitts and Nevis'), 'code' => '+1'),
  200. 'lc' => array('country' => t('Saint Lucia'), 'code' => '+1'),
  201. 'pm' => array('country' => t('Saint Pierre and Miquelon'), 'code' => '+508'),
  202. 'vc' => array('country' => t('Saint Vincent and the Grenadines'), 'code' => '+1'),
  203. 'ws' => array('country' => t('Samoa'), 'code' => '+1'),
  204. 'sm' => array('country' => t('San Marino'), 'code' => '+378'),
  205. 'st' => array('country' => t('Sao Tome and Principe'), 'code' => '+239'),
  206. 'sa' => array('country' => t('Saudi Arabia'), 'code' => '+966'),
  207. 'sn' => array('country' => t('Senegal'), 'code' => '+221'),
  208. 'rs' => array('country' => t('Serbia'), 'code' => '+381'),
  209. 'sc' => array('country' => t('Seychelles'), 'code' => '+248'),
  210. 'sl' => array('country' => t('Sierra Leone'), 'code' => '+232'),
  211. 'sg' => array('country' => t('Singapore'), 'code' => '+65'),
  212. 'sk' => array('country' => t('Slovakia'), 'code' => '+421'),
  213. 'si' => array('country' => t('Slovenia'), 'code' => '+386'),
  214. 'sb' => array('country' => t('Solomon Islands'), 'code' => '+677'),
  215. 'so' => array('country' => t('Somalia'), 'code' => '+252'),
  216. 'za' => array('country' => t('South Africa'), 'code' => '+27'),
  217. 'kr' => array('country' => t('South Korea'), 'code' => '+82'),
  218. 'ss' => array('country' => t('South Sudan'), 'code' => '+211'),
  219. 'es' => array('country' => t('Spain'), 'code' => '+34'),
  220. 'lk' => array('country' => t('Sri Lanka'), 'code' => '+94'),
  221. 'sd' => array('country' => t('Sudan'), 'code' => '+249'),
  222. 'sr' => array('country' => t('Suriname'), 'code' => '+597'),
  223. 'sz' => array('country' => t('Swaziland'), 'code' => '+268'),
  224. 'se' => array('country' => t('Sweden'), 'code' => '+46'),
  225. 'ch' => array('country' => t('Switzerland'), 'code' => '+41'),
  226. 'sy' => array('country' => t('Syria'), 'code' => '+963'),
  227. 'tw' => array('country' => t('Taiwan'), 'code' => '+886'),
  228. 'tj' => array('country' => t('Tajikistan'), 'code' => '+992'),
  229. 'tz' => array('country' => t('Tanzania'), 'code' => '+255'),
  230. 'th' => array('country' => t('Thailand'), 'code' => '+66'),
  231. 'tg' => array('country' => t('Togo'), 'code' => '+228'),
  232. 'tk' => array('country' => t('Tokelau'), 'code' => '+690'),
  233. 'to' => array('country' => t('Tonga'), 'code' => '+676'),
  234. 'tt' => array('country' => t('Trinidad and Tobago'), 'code' => '+1'),
  235. 'tn' => array('country' => t('Tunisia'), 'code' => '+216'),
  236. 'tr' => array('country' => t('Turkey'), 'code' => '+90'),
  237. 'tm' => array('country' => t('Turkmenistan'), 'code' => '+993'),
  238. 'tc' => array('country' => t('Turks and Caicos Islands'), 'code' => '+1'),
  239. 'tv' => array('country' => t('Tuvalu'), 'code' => '+688'),
  240. 'ug' => array('country' => t('Uganda'), 'code' => '+256'),
  241. 'ua' => array('country' => t('Ukraine'), 'code' => '+380'),
  242. 'ae' => array('country' => t('United Arab Emirates'), 'code' => '+971'),
  243. 'gb' => array('country' => t('United Kingdom'), 'code' => '+44'),
  244. 'us' => array('country' => t('United States'), 'code' => '+1'),
  245. 'uy' => array('country' => t('Uruguay'), 'code' => '+598'),
  246. 'vi' => array('country' => t('US Virgin Islands'), 'code' => '+1'),
  247. 'uz' => array('country' => t('Uzbekistan'), 'code' => '+998'),
  248. 'vu' => array('country' => t('Vanuatu'), 'code' => '+678'),
  249. 'va' => array('country' => t('Vatican City'), 'code' => '+39'),
  250. 've' => array('country' => t('Venezuela'), 'code' => '+58'),
  251. 'vn' => array('country' => t('Vietnam'), 'code' => '+84'),
  252. 'wf' => array('country' => t('Wallis and Futuna'), 'code' => '+681'),
  253. 'ye' => array('country' => t('Yemen'), 'code' => '+967'),
  254. 'zm' => array('country' => t('Zambia'), 'code' => '+260'),
  255. 'zw' => array('country' => t('Zimbabwe'), 'code' => '+263'),
  256. );
  257. }
  258. if (is_null($cc)) {
  259. return $country_code;
  260. }
  261. elseif (isset($country_code[$cc])) {
  262. return $country_code[$cc];
  263. }
  264. return FALSE;
  265. }