PageRenderTime 51ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/src/Faker/Provider/Miscellaneous.php

http://github.com/fzaninotto/Faker
PHP | 323 lines | 236 code | 17 blank | 70 comment | 0 complexity | cc33496f396135166ce4f37d58353852 MD5 | raw file
  1. <?php
  2. namespace Faker\Provider;
  3. class Miscellaneous extends Base
  4. {
  5. /**
  6. * @link https://en.wikipedia.org/wiki/Emoji#Unicode_blocks
  7. * On date of 2017-03-26
  8. *
  9. * U+1F600 - U+1F637 as their UTF-8 Pairings
  10. */
  11. protected static $emoji = array(
  12. '\uD83D\uDE00', '\uD83D\uDE01', '\uD83D\uDE02', '\uD83D\uDE03',
  13. '\uD83D\uDE04', '\uD83D\uDE05', '\uD83D\uDE06', '\uD83D\uDE07',
  14. '\uD83D\uDE08', '\uD83D\uDE09', '\uD83D\uDE0A', '\uD83D\uDE0B',
  15. '\uD83D\uDE0C', '\uD83D\uDE0D', '\uD83D\uDE0E', '\uD83D\uDE0F',
  16. '\uD83D\uDE10', '\uD83D\uDE11', '\uD83D\uDE12', '\uD83D\uDE13',
  17. '\uD83D\uDE14', '\uD83D\uDE15', '\uD83D\uDE16', '\uD83D\uDE17',
  18. '\uD83D\uDE18', '\uD83D\uDE19', '\uD83D\uDE1A', '\uD83D\uDE1B',
  19. '\uD83D\uDE1C', '\uD83D\uDE1D', '\uD83D\uDE1E', '\uD83D\uDE1F',
  20. '\uD83D\uDE20', '\uD83D\uDE21', '\uD83D\uDE22', '\uD83D\uDE23',
  21. '\uD83D\uDE24', '\uD83D\uDE25', '\uD83D\uDE26', '\uD83D\uDE27',
  22. '\uD83D\uDE28', '\uD83D\uDE29', '\uD83D\uDE2A', '\uD83D\uDE2B',
  23. '\uD83D\uDE2C', '\uD83D\uDE2D', '\uD83D\uDE2E', '\uD83D\uDE2F',
  24. '\uD83D\uDE30', '\uD83D\uDE31', '\uD83D\uDE32', '\uD83D\uDE33',
  25. '\uD83D\uDE34', '\uD83D\uDE35', '\uD83D\uDE36', '\uD83D\uDE37',
  26. );
  27. /**
  28. * @link https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
  29. * On date of 2016-04-22
  30. */
  31. protected static $languageCode = array(
  32. 'aa', 'ab', 'ae', 'af', 'ak', 'am', 'an', 'ar', 'as', 'av',
  33. 'ay', 'az', 'ba', 'be', 'bg', 'bh', 'bi', 'bm', 'bn', 'bo',
  34. 'br', 'bs', 'ca', 'ce', 'ch', 'co', 'cr', 'cs', 'cu', 'cv',
  35. 'cy', 'da', 'de', 'dv', 'dz', 'ee', 'el', 'en', 'eo', 'es',
  36. 'et', 'eu', 'fa', 'ff', 'fi', 'fj', 'fo', 'fr', 'fy', 'ga',
  37. 'gd', 'gl', 'gn', 'gu', 'gv', 'ha', 'he', 'hi', 'ho', 'hr',
  38. 'ht', 'hu', 'hy', 'hz', 'ia', 'id', 'ie', 'ig', 'ii', 'ik',
  39. 'io', 'is', 'it', 'iu', 'ja', 'jv', 'ka', 'kg', 'ki', 'kj',
  40. 'kk', 'kl', 'km', 'kn', 'ko', 'kr', 'ks', 'ku', 'kv', 'kw',
  41. 'ky', 'la', 'lb', 'lg', 'li', 'ln', 'lo', 'lt', 'lu', 'lv',
  42. 'mg', 'mh', 'mi', 'mk', 'ml', 'mn', 'mr', 'ms', 'mt', 'my',
  43. 'na', 'nb', 'nd', 'ne', 'ng', 'nl', 'nn', 'no', 'nr', 'nv',
  44. 'ny', 'oc', 'oj', 'om', 'or', 'os', 'pa', 'pi', 'pl', 'ps',
  45. 'pt', 'qu', 'rm', 'rn', 'ro', 'ru', 'rw', 'sa', 'sc', 'sd',
  46. 'se', 'sg', 'si', 'sk', 'sl', 'sm', 'sn', 'so', 'sq', 'sr',
  47. 'ss', 'st', 'su', 'sv', 'sw', 'ta', 'te', 'tg', 'th', 'ti',
  48. 'tk', 'tl', 'tn', 'to', 'tr', 'ts', 'tt', 'tw', 'ty', 'ug',
  49. 'uk', 'ur', 'uz', 've', 'vi', 'vo', 'wa', 'wo', 'xh', 'yi',
  50. 'yo', 'za', 'zh', 'zu',
  51. );
  52. /**
  53. * @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
  54. * On date of 2014-10-19
  55. */
  56. protected static $countryCode = array(
  57. 'AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR',
  58. 'AS', 'AT', 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE',
  59. 'BF', 'BG', 'BH', 'BI', 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ',
  60. 'BR', 'BS', 'BT', 'BW', 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF',
  61. 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', 'CN', 'CO', 'CR', 'CU',
  62. 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', 'DM', 'DO',
  63. 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ',
  64. 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG',
  65. 'GH', 'GI', 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT',
  66. 'GU', 'GW', 'GY', 'HK', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE',
  67. 'IL', 'IM', 'IN', 'IO', 'IQ', 'IR', 'IS', 'IT', 'JE', 'JM',
  68. 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', 'KN', 'KP', 'KR',
  69. 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', 'LS',
  70. 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG',
  71. 'MH', 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS',
  72. 'MT', 'MU', 'MV', 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE',
  73. 'NF', 'NG', 'NI', 'NL', 'NO', 'NP', 'NR', 'NU', 'NZ', 'OM',
  74. 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', 'PM', 'PN', 'PR',
  75. 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', 'RW',
  76. 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK',
  77. 'SL', 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY',
  78. 'SZ', 'TC', 'TD', 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM',
  79. 'TN', 'TO', 'TR', 'TT', 'TV', 'TW', 'TZ', 'UA', 'UG', 'UM',
  80. 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', 'VI', 'VN', 'VU',
  81. 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW',
  82. );
  83. /**
  84. * @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3
  85. * On date of 2014-10-19
  86. */
  87. protected static $countryISOAlpha3 = array(
  88. 'ABW', 'AFG', 'AGO', 'AIA', 'ALA', 'ALB', 'AND', 'ARE', 'ARG', 'ARM',
  89. 'ASM', 'ATA', 'ATF', 'ATG', 'AUS', 'AUT', 'AZE', 'BDI', 'BEL', 'BEN',
  90. 'BES', 'BFA', 'BGD', 'BGR', 'BHR', 'BHS', 'BIH', 'BLM', 'BLR', 'BLZ',
  91. 'BMU', 'BOL', 'BRA', 'BRB', 'BRN', 'BTN', 'BVT', 'BWA', 'CAF', 'CAN',
  92. 'CCK', 'CHE', 'CHL', 'CHN', 'CIV', 'CMR', 'COD', 'COG', 'COK', 'COL',
  93. 'COM', 'CPV', 'CRI', 'CUB', 'CUW', 'CXR', 'CYM', 'CYP', 'CZE', 'DEU',
  94. 'DJI', 'DMA', 'DNK', 'DOM', 'DZA', 'ECU', 'EGY', 'ERI', 'ESH', 'ESP',
  95. 'EST', 'ETH', 'FIN', 'FJI', 'FLK', 'FRA', 'FRO', 'FSM', 'GAB', 'GBR',
  96. 'GEO', 'GGY', 'GHA', 'GIB', 'GIN', 'GLP', 'GMB', 'GNB', 'GNQ', 'GRC',
  97. 'GRD', 'GRL', 'GTM', 'GUF', 'GUM', 'GUY', 'HKG', 'HMD', 'HND', 'HRV',
  98. 'HTI', 'HUN', 'IDN', 'IMN', 'IND', 'IOT', 'IRL', 'IRN', 'IRQ', 'ISL',
  99. 'ISR', 'ITA', 'JAM', 'JEY', 'JOR', 'JPN', 'KAZ', 'KEN', 'KGZ', 'KHM',
  100. 'KIR', 'KNA', 'KOR', 'KWT', 'LAO', 'LBN', 'LBR', 'LBY', 'LCA', 'LIE',
  101. 'LKA', 'LSO', 'LTU', 'LUX', 'LVA', 'MAC', 'MAF', 'MAR', 'MCO', 'MDA',
  102. 'MDG', 'MDV', 'MEX', 'MHL', 'MKD', 'MLI', 'MLT', 'MMR', 'MNE', 'MNG',
  103. 'MNP', 'MOZ', 'MRT', 'MSR', 'MTQ', 'MUS', 'MWI', 'MYS', 'MYT', 'NAM',
  104. 'NCL', 'NER', 'NFK', 'NGA', 'NIC', 'NIU', 'NLD', 'NOR', 'NPL', 'NRU',
  105. 'NZL', 'OMN', 'PAK', 'PAN', 'PCN', 'PER', 'PHL', 'PLW', 'PNG', 'POL',
  106. 'PRI', 'PRK', 'PRT', 'PRY', 'PSE', 'PYF', 'QAT', 'REU', 'ROU', 'RUS',
  107. 'RWA', 'SAU', 'SDN', 'SEN', 'SGP', 'SGS', 'SHN', 'SJM', 'SLB', 'SLE',
  108. 'SLV', 'SMR', 'SOM', 'SPM', 'SRB', 'SSD', 'STP', 'SUR', 'SVK', 'SVN',
  109. 'SWE', 'SWZ', 'SXM', 'SYC', 'SYR', 'TCA', 'TCD', 'TGO', 'THA', 'TJK',
  110. 'TKL', 'TKM', 'TLS', 'TON', 'TTO', 'TUN', 'TUR', 'TUV', 'TWN', 'TZA',
  111. 'UGA', 'UKR', 'UMI', 'URY', 'USA', 'UZB', 'VAT', 'VCT', 'VEN', 'VGB',
  112. 'VIR', 'VNM', 'VUT', 'WLF', 'WSM', 'YEM', 'ZAF', 'ZMB', 'ZWE',
  113. );
  114. protected static $localeData = array(
  115. 'aa_DJ', 'aa_ER', 'aa_ET',
  116. 'af_NA', 'af_ZA', 'ak_GH',
  117. 'am_ET', 'ar_AE', 'ar_BH', 'ar_DZ',
  118. 'ar_EG', 'ar_IQ', 'ar_JO', 'ar_KW', 'ar_LB',
  119. 'ar_LY', 'ar_MA', 'ar_OM', 'ar_QA', 'ar_SA',
  120. 'ar_SD', 'ar_SY', 'ar_TN', 'ar_YE',
  121. 'as_IN', 'az_AZ', 'be_BY',
  122. 'bg_BG', 'bn_BD', 'bn_IN',
  123. 'bo_CN', 'bo_IN', 'bs_BA',
  124. 'byn_ER', 'ca_ES',
  125. 'cch_NG', 'cs_CZ',
  126. 'cy_GB', 'da_DK', 'de_AT',
  127. 'de_BE', 'de_CH', 'de_DE', 'de_LI', 'de_LU',
  128. 'dv_MV', 'dz_BT',
  129. 'ee_GH', 'ee_TG', 'el_CY', 'el_GR',
  130. 'en_AS', 'en_AU', 'en_BE', 'en_BW',
  131. 'en_BZ', 'en_CA', 'en_GB', 'en_GU', 'en_HK',
  132. 'en_IE', 'en_IN', 'en_JM', 'en_MH', 'en_MP',
  133. 'en_MT', 'en_NA', 'en_NZ', 'en_PH', 'en_PK',
  134. 'en_SG', 'en_TT', 'en_UM', 'en_US', 'en_VI',
  135. 'en_ZA', 'en_ZW', 'es_AR',
  136. 'es_BO', 'es_CL', 'es_CO', 'es_CR', 'es_DO',
  137. 'es_EC', 'es_ES', 'es_GT', 'es_HN', 'es_MX',
  138. 'es_NI', 'es_PA', 'es_PE', 'es_PR', 'es_PY',
  139. 'es_SV', 'es_US', 'es_UY', 'es_VE',
  140. 'et_EE', 'eu_ES', 'fa_AF',
  141. 'fa_IR', 'fi_FI', 'fil_PH',
  142. 'fo_FO', 'fr_BE', 'fr_CA',
  143. 'fr_CH', 'fr_FR', 'fr_LU', 'fr_MC', 'fr_SN',
  144. 'fur_IT', 'ga_IE',
  145. 'gaa_GH', 'gez_ER', 'gez_ET',
  146. 'gl_ES', 'gsw_CH', 'gu_IN',
  147. 'gv_GB', 'ha_GH', 'ha_NE',
  148. 'ha_NG', 'ha_SD', 'haw_US',
  149. 'he_IL', 'hi_IN', 'hr_HR',
  150. 'hu_HU', 'hy_AM',
  151. 'id_ID', 'ig_NG',
  152. 'ii_CN', 'is_IS',
  153. 'it_CH', 'it_IT',
  154. 'ja_JP', 'ka_GE', 'kaj_NG',
  155. 'kam_KE', 'kcg_NG',
  156. 'kfo_CI', 'kk_KZ', 'kl_GL',
  157. 'km_KH', 'kn_IN',
  158. 'ko_KR', 'kok_IN', 'kpe_GN',
  159. 'kpe_LR', 'ku_IQ', 'ku_IR', 'ku_SY',
  160. 'ku_TR', 'kw_GB', 'ky_KG',
  161. 'ln_CD', 'ln_CG', 'lo_LA',
  162. 'lt_LT', 'lv_LV',
  163. 'mk_MK', 'ml_IN', 'mn_CN',
  164. 'mn_MN', 'mr_IN',
  165. 'ms_BN', 'ms_MY', 'mt_MT',
  166. 'my_MM', 'nb_NO', 'nds_DE',
  167. 'ne_IN', 'ne_NP', 'nl_BE',
  168. 'nl_NL', 'nn_NO',
  169. 'nr_ZA', 'nso_ZA', 'ny_MW',
  170. 'oc_FR', 'om_ET', 'om_KE',
  171. 'or_IN', 'pa_IN', 'pa_PK',
  172. 'pl_PL', 'ps_AF',
  173. 'pt_BR', 'pt_PT', 'ro_MD', 'ro_RO',
  174. 'ru_RU', 'ru_UA', 'rw_RW',
  175. 'sa_IN', 'se_FI', 'se_NO',
  176. 'sh_BA', 'sh_CS', 'sh_YU',
  177. 'si_LK', 'sid_ET', 'sk_SK',
  178. 'sl_SI', 'so_DJ', 'so_ET',
  179. 'so_KE', 'so_SO', 'sq_AL',
  180. 'sr_BA', 'sr_CS', 'sr_ME', 'sr_RS', 'sr_YU',
  181. 'ss_SZ', 'ss_ZA', 'st_LS',
  182. 'st_ZA', 'sv_FI', 'sv_SE',
  183. 'sw_KE', 'sw_TZ', 'syr_SY',
  184. 'ta_IN', 'te_IN', 'tg_TJ',
  185. 'th_TH', 'ti_ER', 'ti_ET',
  186. 'tig_ER', 'tn_ZA',
  187. 'to_TO', 'tr_TR',
  188. 'trv_TW', 'ts_ZA', 'tt_RU',
  189. 'ug_CN', 'uk_UA',
  190. 'ur_IN', 'ur_PK', 'uz_AF', 'uz_UZ',
  191. 've_ZA', 'vi_VN',
  192. 'wal_ET', 'wo_SN', 'xh_ZA',
  193. 'yo_NG', 'zh_CN', 'zh_HK',
  194. 'zh_MO', 'zh_SG', 'zh_TW', 'zu_ZA',
  195. );
  196. /**
  197. * @link https://en.wikipedia.org/wiki/ISO_4217
  198. * On date of 2019-09-27
  199. *
  200. * With the following exceptions:
  201. * SVC has been replaced by the USD in 2001: https://en.wikipedia.org/wiki/Salvadoran_col%C3%B3n
  202. * ZWL has been suspended since 2009: https://en.wikipedia.org/wiki/Zimbabwean_dollar
  203. */
  204. protected static $currencyCode = array(
  205. 'AED', 'AFN', 'ALL', 'AMD', 'ANG', 'AOA', 'ARS', 'AUD', 'AWG', 'AZN',
  206. 'BAM', 'BBD', 'BDT', 'BGN', 'BHD', 'BIF', 'BMD', 'BND', 'BOB', 'BRL',
  207. 'BSD', 'BTN', 'BWP', 'BYN', 'BZD', 'CAD', 'CDF', 'CHF', 'CLP', 'CNY',
  208. 'COP', 'CRC', 'CUC', 'CUP', 'CVE', 'CZK', 'DJF', 'DKK', 'DOP', 'DZD',
  209. 'EGP', 'ERN', 'ETB', 'EUR', 'FJD', 'FKP', 'GBP', 'GEL', 'GHS', 'GIP',
  210. 'GMD', 'GNF', 'GTQ', 'GYD', 'HKD', 'HNL', 'HRK', 'HTG', 'HUF', 'IDR',
  211. 'ILS', 'INR', 'IQD', 'IRR', 'ISK', 'JMD', 'JOD', 'JPY', 'KES', 'KGS',
  212. 'KHR', 'KMF', 'KPW', 'KRW', 'KWD', 'KYD', 'KZT', 'LAK', 'LBP', 'LKR',
  213. 'LRD', 'LSL', 'LYD', 'MAD', 'MDL', 'MGA', 'MKD', 'MMK', 'MNT', 'MOP',
  214. 'MRU', 'MUR', 'MVR', 'MWK', 'MXN', 'MYR', 'MZN', 'NAD', 'NGN', 'NIO',
  215. 'NOK', 'NPR', 'NZD', 'OMR', 'PAB', 'PEN', 'PGK', 'PHP', 'PKR', 'PLN',
  216. 'PYG', 'QAR', 'RON', 'RSD', 'RUB', 'RWF', 'SAR', 'SBD', 'SCR', 'SDG',
  217. 'SEK', 'SGD', 'SHP', 'SLL', 'SOS', 'SRD', 'SSP', 'STN', 'SYP', 'SZL',
  218. 'THB', 'TJS', 'TMT', 'TND', 'TOP', 'TRY', 'TTD', 'TWD', 'TZS', 'UAH',
  219. 'UGX', 'USD', 'UYU', 'UZS', 'VES', 'VND', 'VUV', 'WST', 'XAF', 'XCD',
  220. 'XOF', 'XPF', 'YER', 'ZAR', 'ZMW',
  221. );
  222. /**
  223. * Return a boolean, true or false.
  224. *
  225. * @param int $chanceOfGettingTrue Between 0 (always get false) and 100 (always get true)
  226. *
  227. * @return bool
  228. *
  229. * @example true
  230. */
  231. public static function boolean($chanceOfGettingTrue = 50)
  232. {
  233. return mt_rand(1, 100) <= $chanceOfGettingTrue;
  234. }
  235. /**
  236. * @example 'cfcd208495d565ef66e7dff9f98764da'
  237. */
  238. public static function md5()
  239. {
  240. return md5(mt_rand());
  241. }
  242. /**
  243. * @example 'b5d86317c2a144cd04d0d7c03b2b02666fafadf2'
  244. */
  245. public static function sha1()
  246. {
  247. return sha1(mt_rand());
  248. }
  249. /**
  250. * @example '85086017559ccc40638fcde2fecaf295e0de7ca51b7517b6aebeaaf75b4d4654'
  251. */
  252. public static function sha256()
  253. {
  254. return hash('sha256', mt_rand());
  255. }
  256. /**
  257. * @example 'fr_FR'
  258. */
  259. public static function locale()
  260. {
  261. return static::randomElement(static::$localeData);
  262. }
  263. /**
  264. * @example 'FR'
  265. *
  266. * @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
  267. */
  268. public static function countryCode()
  269. {
  270. return static::randomElement(static::$countryCode);
  271. }
  272. /**
  273. * @example 'FRA'
  274. *
  275. * @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-3
  276. */
  277. public static function countryISOAlpha3()
  278. {
  279. return static::randomElement(static::$countryISOAlpha3);
  280. }
  281. /**
  282. * @example 'fr'
  283. */
  284. public static function languageCode()
  285. {
  286. return static::randomElement(static::$languageCode);
  287. }
  288. /**
  289. * @example 'EUR'
  290. *
  291. * @link https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2
  292. */
  293. public static function currencyCode()
  294. {
  295. return static::randomElement(static::$currencyCode);
  296. }
  297. /**
  298. * Returns an encoded Unicode Character between U+1F600 and U+1F637.
  299. *
  300. * @link https://en.wikipedia.org/wiki/Emoji#Unicode_blocks
  301. */
  302. public static function emoji()
  303. {
  304. return json_decode('"' . static::randomElement(static::$emoji) . '"');
  305. }
  306. }