Annotation of embedaddon/php/ext/mbstring/tests/mb_substr_variation3.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Test mb_substr() function : usage variations - test different encodings
3: --SKIPIF--
4: <?php
5: extension_loaded('mbstring') or die('skip');
6: function_exists('mb_substr') or die("skip mb_substr() is not available in this build");
7: ?>
8: --FILE--
9: <?php
10: /* Prototype : string mb_substr(string $str, int $start [, int $length [, string $encoding]])
11: * Description: Returns part of a string
12: * Source code: ext/mbstring/mbstring.c
13: */
14:
15: /*
16: * Pass all encodings listed on php.net to test that function recognises them.
17: * NB: The strings passed are *NOT* necessarily encoded in the encoding passed to the function.
18: * This test is purely to see whether the function recognises the encoding.
19: */
20:
21: echo "*** Testing mb_substr() : usage variations ***\n";
22:
23: $encoding = array('UCS-4', /*1*/
24: 'UCS-4BE',
25: 'UCS-4LE',
26: 'UCS-2',
27: 'UCS-2BE', /*5*/
28: 'UCS-2LE',
29: 'UTF-32',
30: 'UTF-32BE',
31: 'UTF-32LE',
32: 'UTF-16', /*10*/
33: 'UTF-16BE',
34: 'UTF-16LE',
35: 'UTF-7',
36: 'UTF7-IMAP',
37: 'UTF-8', /*15*/
38: 'ASCII',
39: 'EUC-JP',
40: 'SJIS',
41: 'eucJP-win',
42: 'SJIS-win', /*20*/
43: 'ISO-2022-JP',
44: 'JIS',
45: 'ISO-8859-1',
46: 'ISO-8859-2',
47: 'ISO-8859-3', /*25*/
48: 'ISO-8859-4',
49: 'ISO-8859-5',
50: 'ISO-8859-6',
51: 'ISO-8859-7',
52: 'ISO-8859-8', /*30*/
53: 'ISO-8859-9',
54: 'ISO-8859-10',
55: 'ISO-8859-13',
56: 'ISO-8859-14',
57: 'ISO-8859-15', /*35*/
58: 'byte2be',
59: 'byte2le',
60: 'byte4be',
61: 'byte4le',
62: 'BASE64', /*40*/
63: 'HTML-ENTITIES',
64: '7bit',
65: '8bit',
66: 'EUC-CN',
67: 'CP936', /*45*/
68: 'HZ',
69: 'EUC-TW',
70: 'CP950',
71: 'BIG-5',
72: 'EUC-KR', /*50*/
73: 'UHC',
74: 'ISO-2022-KR',
75: 'Windows-1251',
76: 'Windows-1252',
77: 'CP866', /*55*/
78: 'KOI8-R'); /*56*/
79:
80:
81:
82: $iterator = 1;
83: $string_ascii = 'abc def';
84: //Japanese string encoded in UTF-8
85: $string_mb = base64_decode('44K/44OT44Ol44Os44O844OG44Kj44Oz44Kw44O744Oe44K344O844Oz44O744Kr44Oz44OR44OL44O8');
86:
87: foreach($encoding as $enc) {
88: echo "\n-- Iteration $iterator: $enc --\n";
89:
90: echo "-- ASCII String --\n";
91: if (mb_substr($string_ascii, 1, 5, $enc)) {
92: echo "Encoding $enc recognised\n";
93: } else {
94: echo "Encoding $enc not recognised\n";
95: }
96:
97: echo "-- Multibyte String --\n";
98: if (mb_substr($string_mb, 1, 5, $enc)) {
99: echo "Encoding $enc recognised\n";
100: } else {
101: echo "Encoding $enc not recognised\n";
102: }
103: }
104:
105: echo "Done";
106: ?>
107: --EXPECTF--
108: *** Testing mb_substr() : usage variations ***
109:
110: -- Iteration 1: UCS-4 --
111: -- ASCII String --
112: Encoding UCS-4 recognised
113: -- Multibyte String --
114: Encoding UCS-4 recognised
115:
116: -- Iteration 1: UCS-4BE --
117: -- ASCII String --
118: Encoding UCS-4BE recognised
119: -- Multibyte String --
120: Encoding UCS-4BE recognised
121:
122: -- Iteration 1: UCS-4LE --
123: -- ASCII String --
124: Encoding UCS-4LE recognised
125: -- Multibyte String --
126: Encoding UCS-4LE recognised
127:
128: -- Iteration 1: UCS-2 --
129: -- ASCII String --
130: Encoding UCS-2 recognised
131: -- Multibyte String --
132: Encoding UCS-2 recognised
133:
134: -- Iteration 1: UCS-2BE --
135: -- ASCII String --
136: Encoding UCS-2BE recognised
137: -- Multibyte String --
138: Encoding UCS-2BE recognised
139:
140: -- Iteration 1: UCS-2LE --
141: -- ASCII String --
142: Encoding UCS-2LE recognised
143: -- Multibyte String --
144: Encoding UCS-2LE recognised
145:
146: -- Iteration 1: UTF-32 --
147: -- ASCII String --
148: Encoding UTF-32 recognised
149: -- Multibyte String --
150: Encoding UTF-32 recognised
151:
152: -- Iteration 1: UTF-32BE --
153: -- ASCII String --
154: Encoding UTF-32BE recognised
155: -- Multibyte String --
156: Encoding UTF-32BE recognised
157:
158: -- Iteration 1: UTF-32LE --
159: -- ASCII String --
160: Encoding UTF-32LE recognised
161: -- Multibyte String --
162: Encoding UTF-32LE recognised
163:
164: -- Iteration 1: UTF-16 --
165: -- ASCII String --
166: Encoding UTF-16 recognised
167: -- Multibyte String --
168: Encoding UTF-16 recognised
169:
170: -- Iteration 1: UTF-16BE --
171: -- ASCII String --
172: Encoding UTF-16BE recognised
173: -- Multibyte String --
174: Encoding UTF-16BE recognised
175:
176: -- Iteration 1: UTF-16LE --
177: -- ASCII String --
178: Encoding UTF-16LE recognised
179: -- Multibyte String --
180: Encoding UTF-16LE recognised
181:
182: -- Iteration 1: UTF-7 --
183: -- ASCII String --
184: Encoding UTF-7 recognised
185: -- Multibyte String --
186: Encoding UTF-7 recognised
187:
188: -- Iteration 1: UTF7-IMAP --
189: -- ASCII String --
190: Encoding UTF7-IMAP recognised
191: -- Multibyte String --
192: Encoding UTF7-IMAP recognised
193:
194: -- Iteration 1: UTF-8 --
195: -- ASCII String --
196: Encoding UTF-8 recognised
197: -- Multibyte String --
198: Encoding UTF-8 recognised
199:
200: -- Iteration 1: ASCII --
201: -- ASCII String --
202: Encoding ASCII recognised
203: -- Multibyte String --
204: Encoding ASCII recognised
205:
206: -- Iteration 1: EUC-JP --
207: -- ASCII String --
208: Encoding EUC-JP recognised
209: -- Multibyte String --
210: Encoding EUC-JP recognised
211:
212: -- Iteration 1: SJIS --
213: -- ASCII String --
214: Encoding SJIS recognised
215: -- Multibyte String --
216: Encoding SJIS recognised
217:
218: -- Iteration 1: eucJP-win --
219: -- ASCII String --
220: Encoding eucJP-win recognised
221: -- Multibyte String --
222: Encoding eucJP-win recognised
223:
224: -- Iteration 1: SJIS-win --
225: -- ASCII String --
226: Encoding SJIS-win recognised
227: -- Multibyte String --
228: Encoding SJIS-win recognised
229:
230: -- Iteration 1: ISO-2022-JP --
231: -- ASCII String --
232: Encoding ISO-2022-JP recognised
233: -- Multibyte String --
234: Encoding ISO-2022-JP recognised
235:
236: -- Iteration 1: JIS --
237: -- ASCII String --
238: Encoding JIS recognised
239: -- Multibyte String --
240: Encoding JIS recognised
241:
242: -- Iteration 1: ISO-8859-1 --
243: -- ASCII String --
244: Encoding ISO-8859-1 recognised
245: -- Multibyte String --
246: Encoding ISO-8859-1 recognised
247:
248: -- Iteration 1: ISO-8859-2 --
249: -- ASCII String --
250: Encoding ISO-8859-2 recognised
251: -- Multibyte String --
252: Encoding ISO-8859-2 recognised
253:
254: -- Iteration 1: ISO-8859-3 --
255: -- ASCII String --
256: Encoding ISO-8859-3 recognised
257: -- Multibyte String --
258: Encoding ISO-8859-3 recognised
259:
260: -- Iteration 1: ISO-8859-4 --
261: -- ASCII String --
262: Encoding ISO-8859-4 recognised
263: -- Multibyte String --
264: Encoding ISO-8859-4 recognised
265:
266: -- Iteration 1: ISO-8859-5 --
267: -- ASCII String --
268: Encoding ISO-8859-5 recognised
269: -- Multibyte String --
270: Encoding ISO-8859-5 recognised
271:
272: -- Iteration 1: ISO-8859-6 --
273: -- ASCII String --
274: Encoding ISO-8859-6 recognised
275: -- Multibyte String --
276: Encoding ISO-8859-6 recognised
277:
278: -- Iteration 1: ISO-8859-7 --
279: -- ASCII String --
280: Encoding ISO-8859-7 recognised
281: -- Multibyte String --
282: Encoding ISO-8859-7 recognised
283:
284: -- Iteration 1: ISO-8859-8 --
285: -- ASCII String --
286: Encoding ISO-8859-8 recognised
287: -- Multibyte String --
288: Encoding ISO-8859-8 recognised
289:
290: -- Iteration 1: ISO-8859-9 --
291: -- ASCII String --
292: Encoding ISO-8859-9 recognised
293: -- Multibyte String --
294: Encoding ISO-8859-9 recognised
295:
296: -- Iteration 1: ISO-8859-10 --
297: -- ASCII String --
298: Encoding ISO-8859-10 recognised
299: -- Multibyte String --
300: Encoding ISO-8859-10 recognised
301:
302: -- Iteration 1: ISO-8859-13 --
303: -- ASCII String --
304: Encoding ISO-8859-13 recognised
305: -- Multibyte String --
306: Encoding ISO-8859-13 recognised
307:
308: -- Iteration 1: ISO-8859-14 --
309: -- ASCII String --
310: Encoding ISO-8859-14 recognised
311: -- Multibyte String --
312: Encoding ISO-8859-14 recognised
313:
314: -- Iteration 1: ISO-8859-15 --
315: -- ASCII String --
316: Encoding ISO-8859-15 recognised
317: -- Multibyte String --
318: Encoding ISO-8859-15 recognised
319:
320: -- Iteration 1: byte2be --
321: -- ASCII String --
322: Encoding byte2be recognised
323: -- Multibyte String --
324: Encoding byte2be recognised
325:
326: -- Iteration 1: byte2le --
327: -- ASCII String --
328: Encoding byte2le recognised
329: -- Multibyte String --
330: Encoding byte2le recognised
331:
332: -- Iteration 1: byte4be --
333: -- ASCII String --
334: Encoding byte4be recognised
335: -- Multibyte String --
336: Encoding byte4be recognised
337:
338: -- Iteration 1: byte4le --
339: -- ASCII String --
340: Encoding byte4le recognised
341: -- Multibyte String --
342: Encoding byte4le recognised
343:
344: -- Iteration 1: BASE64 --
345: -- ASCII String --
346: Encoding BASE64 recognised
347: -- Multibyte String --
348: Encoding BASE64 recognised
349:
350: -- Iteration 1: HTML-ENTITIES --
351: -- ASCII String --
352: Encoding HTML-ENTITIES recognised
353: -- Multibyte String --
354: Encoding HTML-ENTITIES recognised
355:
356: -- Iteration 1: 7bit --
357: -- ASCII String --
358: Encoding 7bit recognised
359: -- Multibyte String --
360: Encoding 7bit recognised
361:
362: -- Iteration 1: 8bit --
363: -- ASCII String --
364: Encoding 8bit recognised
365: -- Multibyte String --
366: Encoding 8bit recognised
367:
368: -- Iteration 1: EUC-CN --
369: -- ASCII String --
370: Encoding EUC-CN recognised
371: -- Multibyte String --
372: Encoding EUC-CN recognised
373:
374: -- Iteration 1: CP936 --
375: -- ASCII String --
376: Encoding CP936 recognised
377: -- Multibyte String --
378: Encoding CP936 recognised
379:
380: -- Iteration 1: HZ --
381: -- ASCII String --
382: Encoding HZ recognised
383: -- Multibyte String --
384: Encoding HZ recognised
385:
386: -- Iteration 1: EUC-TW --
387: -- ASCII String --
388: Encoding EUC-TW recognised
389: -- Multibyte String --
390: Encoding EUC-TW recognised
391:
392: -- Iteration 1: CP950 --
393: -- ASCII String --
394: Encoding CP950 recognised
395: -- Multibyte String --
396: Encoding CP950 recognised
397:
398: -- Iteration 1: BIG-5 --
399: -- ASCII String --
400: Encoding BIG-5 recognised
401: -- Multibyte String --
402: Encoding BIG-5 recognised
403:
404: -- Iteration 1: EUC-KR --
405: -- ASCII String --
406: Encoding EUC-KR recognised
407: -- Multibyte String --
408: Encoding EUC-KR recognised
409:
410: -- Iteration 1: UHC --
411: -- ASCII String --
412: Encoding UHC recognised
413: -- Multibyte String --
414: Encoding UHC recognised
415:
416: -- Iteration 1: ISO-2022-KR --
417: -- ASCII String --
418: Encoding ISO-2022-KR recognised
419: -- Multibyte String --
420: Encoding ISO-2022-KR recognised
421:
422: -- Iteration 1: Windows-1251 --
423: -- ASCII String --
424: Encoding Windows-1251 recognised
425: -- Multibyte String --
426: Encoding Windows-1251 recognised
427:
428: -- Iteration 1: Windows-1252 --
429: -- ASCII String --
430: Encoding Windows-1252 recognised
431: -- Multibyte String --
432: Encoding Windows-1252 recognised
433:
434: -- Iteration 1: CP866 --
435: -- ASCII String --
436: Encoding CP866 recognised
437: -- Multibyte String --
438: Encoding CP866 recognised
439:
440: -- Iteration 1: KOI8-R --
441: -- ASCII String --
442: Encoding KOI8-R recognised
443: -- Multibyte String --
444: Encoding KOI8-R recognised
445: Done
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>