mb_strlen_variation3.phpt 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. --TEST--
  2. Test mb_strlen() function : usage variations - Pass list of encodings
  3. --EXTENSIONS--
  4. mbstring
  5. --FILE--
  6. <?php
  7. /*
  8. * Pass all encodings listed on php.net to mb_strlen to test that function recognises them
  9. * NB: The strings passed are *NOT* necessarily encoded in the encoding passed to the function.
  10. * This test is purely to see whether the function recognises the encoding.
  11. */
  12. echo "*** Testing mb_strlen() : usage variations ***\n";
  13. $encoding = array('UCS-4', /*1*/
  14. 'UCS-4BE',
  15. 'UCS-4LE',
  16. 'UCS-2',
  17. 'UCS-2BE', /*5*/
  18. 'UCS-2LE',
  19. 'UTF-32',
  20. 'UTF-32BE',
  21. 'UTF-32LE',
  22. 'UTF-16', /*10*/
  23. 'UTF-16BE',
  24. 'UTF-16LE',
  25. 'UTF-7',
  26. 'UTF7-IMAP',
  27. 'UTF-8', /*15*/
  28. 'ASCII',
  29. 'EUC-JP',
  30. 'SJIS',
  31. 'eucJP-win',
  32. 'SJIS-win', /*20*/
  33. 'ISO-2022-JP',
  34. 'JIS',
  35. 'ISO-8859-1',
  36. 'ISO-8859-2',
  37. 'ISO-8859-3', /*25*/
  38. 'ISO-8859-4',
  39. 'ISO-8859-5',
  40. 'ISO-8859-6',
  41. 'ISO-8859-7',
  42. 'ISO-8859-8', /*30*/
  43. 'ISO-8859-9',
  44. 'ISO-8859-10',
  45. 'ISO-8859-13',
  46. 'ISO-8859-14',
  47. 'ISO-8859-15', /*35*/
  48. 'byte2be',
  49. 'byte2le',
  50. 'byte4be',
  51. 'byte4le',
  52. 'BASE64', /*40*/
  53. 'HTML-ENTITIES',
  54. '7bit',
  55. '8bit',
  56. 'EUC-CN',
  57. 'CP936', /*45*/
  58. 'HZ',
  59. 'EUC-TW',
  60. 'CP950',
  61. 'BIG-5',
  62. 'EUC-KR', /*50*/
  63. 'UHC',
  64. 'ISO-2022-KR',
  65. 'Windows-1251',
  66. 'Windows-1252',
  67. 'CP866', /*55*/
  68. 'KOI8-R'); /*56*/
  69. $iterator = 1;
  70. $string_ascii = 'abc def';
  71. $string_mb = base64_decode('44K/44OT44Ol44Os44O844OG44Kj44Oz44Kw44O744Oe44K344O844Oz44O744Kr44Oz44OR44OL44O8');
  72. foreach($encoding as $enc) {
  73. echo "\n-- Iteration $iterator: $enc --\n";
  74. echo "-- ASCII String --\n";
  75. if(mb_strlen($string_ascii, $enc)) {
  76. echo "Encoding $enc recognised\n";
  77. } else {
  78. echo "Encoding $enc not recognised\n";
  79. }
  80. echo "-- Multibyte String --\n";
  81. if(mb_strlen($string_mb, $enc)){
  82. echo "Encoding $enc recognised\n";
  83. } else {
  84. echo "Encoding $enc not recognised\n";
  85. }
  86. $iterator++;
  87. }
  88. echo "Done";
  89. ?>
  90. --EXPECT--
  91. *** Testing mb_strlen() : usage variations ***
  92. -- Iteration 1: UCS-4 --
  93. -- ASCII String --
  94. Encoding UCS-4 recognised
  95. -- Multibyte String --
  96. Encoding UCS-4 recognised
  97. -- Iteration 2: UCS-4BE --
  98. -- ASCII String --
  99. Encoding UCS-4BE recognised
  100. -- Multibyte String --
  101. Encoding UCS-4BE recognised
  102. -- Iteration 3: UCS-4LE --
  103. -- ASCII String --
  104. Encoding UCS-4LE recognised
  105. -- Multibyte String --
  106. Encoding UCS-4LE recognised
  107. -- Iteration 4: UCS-2 --
  108. -- ASCII String --
  109. Encoding UCS-2 recognised
  110. -- Multibyte String --
  111. Encoding UCS-2 recognised
  112. -- Iteration 5: UCS-2BE --
  113. -- ASCII String --
  114. Encoding UCS-2BE recognised
  115. -- Multibyte String --
  116. Encoding UCS-2BE recognised
  117. -- Iteration 6: UCS-2LE --
  118. -- ASCII String --
  119. Encoding UCS-2LE recognised
  120. -- Multibyte String --
  121. Encoding UCS-2LE recognised
  122. -- Iteration 7: UTF-32 --
  123. -- ASCII String --
  124. Encoding UTF-32 recognised
  125. -- Multibyte String --
  126. Encoding UTF-32 recognised
  127. -- Iteration 8: UTF-32BE --
  128. -- ASCII String --
  129. Encoding UTF-32BE recognised
  130. -- Multibyte String --
  131. Encoding UTF-32BE recognised
  132. -- Iteration 9: UTF-32LE --
  133. -- ASCII String --
  134. Encoding UTF-32LE recognised
  135. -- Multibyte String --
  136. Encoding UTF-32LE recognised
  137. -- Iteration 10: UTF-16 --
  138. -- ASCII String --
  139. Encoding UTF-16 recognised
  140. -- Multibyte String --
  141. Encoding UTF-16 recognised
  142. -- Iteration 11: UTF-16BE --
  143. -- ASCII String --
  144. Encoding UTF-16BE recognised
  145. -- Multibyte String --
  146. Encoding UTF-16BE recognised
  147. -- Iteration 12: UTF-16LE --
  148. -- ASCII String --
  149. Encoding UTF-16LE recognised
  150. -- Multibyte String --
  151. Encoding UTF-16LE recognised
  152. -- Iteration 13: UTF-7 --
  153. -- ASCII String --
  154. Encoding UTF-7 recognised
  155. -- Multibyte String --
  156. Encoding UTF-7 recognised
  157. -- Iteration 14: UTF7-IMAP --
  158. -- ASCII String --
  159. Encoding UTF7-IMAP recognised
  160. -- Multibyte String --
  161. Encoding UTF7-IMAP recognised
  162. -- Iteration 15: UTF-8 --
  163. -- ASCII String --
  164. Encoding UTF-8 recognised
  165. -- Multibyte String --
  166. Encoding UTF-8 recognised
  167. -- Iteration 16: ASCII --
  168. -- ASCII String --
  169. Encoding ASCII recognised
  170. -- Multibyte String --
  171. Encoding ASCII recognised
  172. -- Iteration 17: EUC-JP --
  173. -- ASCII String --
  174. Encoding EUC-JP recognised
  175. -- Multibyte String --
  176. Encoding EUC-JP recognised
  177. -- Iteration 18: SJIS --
  178. -- ASCII String --
  179. Encoding SJIS recognised
  180. -- Multibyte String --
  181. Encoding SJIS recognised
  182. -- Iteration 19: eucJP-win --
  183. -- ASCII String --
  184. Encoding eucJP-win recognised
  185. -- Multibyte String --
  186. Encoding eucJP-win recognised
  187. -- Iteration 20: SJIS-win --
  188. -- ASCII String --
  189. Encoding SJIS-win recognised
  190. -- Multibyte String --
  191. Encoding SJIS-win recognised
  192. -- Iteration 21: ISO-2022-JP --
  193. -- ASCII String --
  194. Encoding ISO-2022-JP recognised
  195. -- Multibyte String --
  196. Encoding ISO-2022-JP recognised
  197. -- Iteration 22: JIS --
  198. -- ASCII String --
  199. Encoding JIS recognised
  200. -- Multibyte String --
  201. Encoding JIS recognised
  202. -- Iteration 23: ISO-8859-1 --
  203. -- ASCII String --
  204. Encoding ISO-8859-1 recognised
  205. -- Multibyte String --
  206. Encoding ISO-8859-1 recognised
  207. -- Iteration 24: ISO-8859-2 --
  208. -- ASCII String --
  209. Encoding ISO-8859-2 recognised
  210. -- Multibyte String --
  211. Encoding ISO-8859-2 recognised
  212. -- Iteration 25: ISO-8859-3 --
  213. -- ASCII String --
  214. Encoding ISO-8859-3 recognised
  215. -- Multibyte String --
  216. Encoding ISO-8859-3 recognised
  217. -- Iteration 26: ISO-8859-4 --
  218. -- ASCII String --
  219. Encoding ISO-8859-4 recognised
  220. -- Multibyte String --
  221. Encoding ISO-8859-4 recognised
  222. -- Iteration 27: ISO-8859-5 --
  223. -- ASCII String --
  224. Encoding ISO-8859-5 recognised
  225. -- Multibyte String --
  226. Encoding ISO-8859-5 recognised
  227. -- Iteration 28: ISO-8859-6 --
  228. -- ASCII String --
  229. Encoding ISO-8859-6 recognised
  230. -- Multibyte String --
  231. Encoding ISO-8859-6 recognised
  232. -- Iteration 29: ISO-8859-7 --
  233. -- ASCII String --
  234. Encoding ISO-8859-7 recognised
  235. -- Multibyte String --
  236. Encoding ISO-8859-7 recognised
  237. -- Iteration 30: ISO-8859-8 --
  238. -- ASCII String --
  239. Encoding ISO-8859-8 recognised
  240. -- Multibyte String --
  241. Encoding ISO-8859-8 recognised
  242. -- Iteration 31: ISO-8859-9 --
  243. -- ASCII String --
  244. Encoding ISO-8859-9 recognised
  245. -- Multibyte String --
  246. Encoding ISO-8859-9 recognised
  247. -- Iteration 32: ISO-8859-10 --
  248. -- ASCII String --
  249. Encoding ISO-8859-10 recognised
  250. -- Multibyte String --
  251. Encoding ISO-8859-10 recognised
  252. -- Iteration 33: ISO-8859-13 --
  253. -- ASCII String --
  254. Encoding ISO-8859-13 recognised
  255. -- Multibyte String --
  256. Encoding ISO-8859-13 recognised
  257. -- Iteration 34: ISO-8859-14 --
  258. -- ASCII String --
  259. Encoding ISO-8859-14 recognised
  260. -- Multibyte String --
  261. Encoding ISO-8859-14 recognised
  262. -- Iteration 35: ISO-8859-15 --
  263. -- ASCII String --
  264. Encoding ISO-8859-15 recognised
  265. -- Multibyte String --
  266. Encoding ISO-8859-15 recognised
  267. -- Iteration 36: byte2be --
  268. -- ASCII String --
  269. Encoding byte2be recognised
  270. -- Multibyte String --
  271. Encoding byte2be recognised
  272. -- Iteration 37: byte2le --
  273. -- ASCII String --
  274. Encoding byte2le recognised
  275. -- Multibyte String --
  276. Encoding byte2le recognised
  277. -- Iteration 38: byte4be --
  278. -- ASCII String --
  279. Encoding byte4be recognised
  280. -- Multibyte String --
  281. Encoding byte4be recognised
  282. -- Iteration 39: byte4le --
  283. -- ASCII String --
  284. Encoding byte4le recognised
  285. -- Multibyte String --
  286. Encoding byte4le recognised
  287. -- Iteration 40: BASE64 --
  288. -- ASCII String --
  289. Encoding BASE64 recognised
  290. -- Multibyte String --
  291. Encoding BASE64 recognised
  292. -- Iteration 41: HTML-ENTITIES --
  293. -- ASCII String --
  294. Encoding HTML-ENTITIES recognised
  295. -- Multibyte String --
  296. Encoding HTML-ENTITIES recognised
  297. -- Iteration 42: 7bit --
  298. -- ASCII String --
  299. Encoding 7bit recognised
  300. -- Multibyte String --
  301. Encoding 7bit recognised
  302. -- Iteration 43: 8bit --
  303. -- ASCII String --
  304. Encoding 8bit recognised
  305. -- Multibyte String --
  306. Encoding 8bit recognised
  307. -- Iteration 44: EUC-CN --
  308. -- ASCII String --
  309. Encoding EUC-CN recognised
  310. -- Multibyte String --
  311. Encoding EUC-CN recognised
  312. -- Iteration 45: CP936 --
  313. -- ASCII String --
  314. Encoding CP936 recognised
  315. -- Multibyte String --
  316. Encoding CP936 recognised
  317. -- Iteration 46: HZ --
  318. -- ASCII String --
  319. Encoding HZ recognised
  320. -- Multibyte String --
  321. Encoding HZ recognised
  322. -- Iteration 47: EUC-TW --
  323. -- ASCII String --
  324. Encoding EUC-TW recognised
  325. -- Multibyte String --
  326. Encoding EUC-TW recognised
  327. -- Iteration 48: CP950 --
  328. -- ASCII String --
  329. Encoding CP950 recognised
  330. -- Multibyte String --
  331. Encoding CP950 recognised
  332. -- Iteration 49: BIG-5 --
  333. -- ASCII String --
  334. Encoding BIG-5 recognised
  335. -- Multibyte String --
  336. Encoding BIG-5 recognised
  337. -- Iteration 50: EUC-KR --
  338. -- ASCII String --
  339. Encoding EUC-KR recognised
  340. -- Multibyte String --
  341. Encoding EUC-KR recognised
  342. -- Iteration 51: UHC --
  343. -- ASCII String --
  344. Encoding UHC recognised
  345. -- Multibyte String --
  346. Encoding UHC recognised
  347. -- Iteration 52: ISO-2022-KR --
  348. -- ASCII String --
  349. Encoding ISO-2022-KR recognised
  350. -- Multibyte String --
  351. Encoding ISO-2022-KR recognised
  352. -- Iteration 53: Windows-1251 --
  353. -- ASCII String --
  354. Encoding Windows-1251 recognised
  355. -- Multibyte String --
  356. Encoding Windows-1251 recognised
  357. -- Iteration 54: Windows-1252 --
  358. -- ASCII String --
  359. Encoding Windows-1252 recognised
  360. -- Multibyte String --
  361. Encoding Windows-1252 recognised
  362. -- Iteration 55: CP866 --
  363. -- ASCII String --
  364. Encoding CP866 recognised
  365. -- Multibyte String --
  366. Encoding CP866 recognised
  367. -- Iteration 56: KOI8-R --
  368. -- ASCII String --
  369. Encoding KOI8-R recognised
  370. -- Multibyte String --
  371. Encoding KOI8-R recognised
  372. Done