1--TEST--
2Test mb_regex_encoding() function : usage variations - test different encodings
3--SKIPIF--
4<?php
5extension_loaded('mbstring') or die('skip');
6function_exists('mb_regex_encoding') or die("skip mb_regex_encoding() is not available in this build");
7?>
8--FILE--
9<?php
10/* Prototype  : string mb_regex_encoding([string $encoding])
11 * Description: Returns the current encoding for regex as a string.
12 * Source code: ext/mbstring/php_mbregex.c
13 */
14
15/*
16 * Test all listed encoding types from php.net to check all are known to function
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
21echo "*** Testing mb_regex_encoding() : 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$iterator = 1;
81foreach($encoding as $enc) {
82	echo "\n-- Iteration $iterator --\n";
83	var_dump(mb_regex_encoding());
84	var_dump(mb_regex_encoding($enc));
85	var_dump(mb_regex_encoding());
86	$iterator++;
87}
88echo "Done";
89?>
90--EXPECTF--
91*** Testing mb_regex_encoding() : usage variations ***
92
93-- Iteration 1 --
94string(%d) "%s"
95bool(true)
96string(5) "UCS-4"
97
98-- Iteration 2 --
99string(5) "UCS-4"
100
101Warning: mb_regex_encoding(): Unknown encoding "UCS-4BE" in %s on line %d
102bool(false)
103string(5) "UCS-4"
104
105-- Iteration 3 --
106string(5) "UCS-4"
107bool(true)
108string(7) "UCS-4LE"
109
110-- Iteration 4 --
111string(7) "UCS-4LE"
112
113Warning: mb_regex_encoding(): Unknown encoding "UCS-2" in %s on line %d
114bool(false)
115string(7) "UCS-4LE"
116
117-- Iteration 5 --
118string(7) "UCS-4LE"
119
120Warning: mb_regex_encoding(): Unknown encoding "UCS-2BE" in %s on line %d
121bool(false)
122string(7) "UCS-4LE"
123
124-- Iteration 6 --
125string(7) "UCS-4LE"
126
127Warning: mb_regex_encoding(): Unknown encoding "UCS-2LE" in %s on line %d
128bool(false)
129string(7) "UCS-4LE"
130
131-- Iteration 7 --
132string(7) "UCS-4LE"
133bool(true)
134string(5) "UCS-4"
135
136-- Iteration 8 --
137string(5) "UCS-4"
138bool(true)
139string(5) "UCS-4"
140
141-- Iteration 9 --
142string(5) "UCS-4"
143bool(true)
144string(7) "UCS-4LE"
145
146-- Iteration 10 --
147string(7) "UCS-4LE"
148bool(true)
149string(6) "UTF-16"
150
151-- Iteration 11 --
152string(6) "UTF-16"
153bool(true)
154string(6) "UTF-16"
155
156-- Iteration 12 --
157string(6) "UTF-16"
158bool(true)
159string(8) "UTF-16LE"
160
161-- Iteration 13 --
162string(8) "UTF-16LE"
163
164Warning: mb_regex_encoding(): Unknown encoding "UTF-7" in %s on line %d
165bool(false)
166string(8) "UTF-16LE"
167
168-- Iteration 14 --
169string(8) "UTF-16LE"
170
171Warning: mb_regex_encoding(): Unknown encoding "UTF7-IMAP" in %s on line %d
172bool(false)
173string(8) "UTF-16LE"
174
175-- Iteration 15 --
176string(8) "UTF-16LE"
177bool(true)
178string(5) "UTF-8"
179
180-- Iteration 16 --
181string(5) "UTF-8"
182bool(true)
183string(5) "ASCII"
184
185-- Iteration 17 --
186string(5) "ASCII"
187bool(true)
188string(6) "EUC-JP"
189
190-- Iteration 18 --
191string(6) "EUC-JP"
192bool(true)
193string(4) "SJIS"
194
195-- Iteration 19 --
196string(4) "SJIS"
197bool(true)
198string(6) "EUC-JP"
199
200-- Iteration 20 --
201string(6) "EUC-JP"
202bool(true)
203string(4) "SJIS"
204
205-- Iteration 21 --
206string(4) "SJIS"
207
208Warning: mb_regex_encoding(): Unknown encoding "ISO-2022-JP" in %s on line %d
209bool(false)
210string(4) "SJIS"
211
212-- Iteration 22 --
213string(4) "SJIS"
214
215Warning: mb_regex_encoding(): Unknown encoding "JIS" in %s on line %d
216bool(false)
217string(4) "SJIS"
218
219-- Iteration 23 --
220string(4) "SJIS"
221bool(true)
222string(10) "ISO-8859-1"
223
224-- Iteration 24 --
225string(10) "ISO-8859-1"
226bool(true)
227string(10) "ISO-8859-2"
228
229-- Iteration 25 --
230string(10) "ISO-8859-2"
231bool(true)
232string(10) "ISO-8859-3"
233
234-- Iteration 26 --
235string(10) "ISO-8859-3"
236bool(true)
237string(10) "ISO-8859-4"
238
239-- Iteration 27 --
240string(10) "ISO-8859-4"
241bool(true)
242string(10) "ISO-8859-5"
243
244-- Iteration 28 --
245string(10) "ISO-8859-5"
246bool(true)
247string(10) "ISO-8859-6"
248
249-- Iteration 29 --
250string(10) "ISO-8859-6"
251bool(true)
252string(10) "ISO-8859-7"
253
254-- Iteration 30 --
255string(10) "ISO-8859-7"
256bool(true)
257string(10) "ISO-8859-8"
258
259-- Iteration 31 --
260string(10) "ISO-8859-8"
261bool(true)
262string(10) "ISO-8859-9"
263
264-- Iteration 32 --
265string(10) "ISO-8859-9"
266bool(true)
267string(11) "ISO-8859-10"
268
269-- Iteration 33 --
270string(11) "ISO-8859-10"
271bool(true)
272string(11) "ISO-8859-13"
273
274-- Iteration 34 --
275string(11) "ISO-8859-13"
276bool(true)
277string(11) "ISO-8859-14"
278
279-- Iteration 35 --
280string(11) "ISO-8859-14"
281bool(true)
282string(11) "ISO-8859-15"
283
284-- Iteration 36 --
285string(11) "ISO-8859-15"
286
287Warning: mb_regex_encoding(): Unknown encoding "byte2be" in %s on line %d
288bool(false)
289string(11) "ISO-8859-15"
290
291-- Iteration 37 --
292string(11) "ISO-8859-15"
293
294Warning: mb_regex_encoding(): Unknown encoding "byte2le" in %s on line %d
295bool(false)
296string(11) "ISO-8859-15"
297
298-- Iteration 38 --
299string(11) "ISO-8859-15"
300
301Warning: mb_regex_encoding(): Unknown encoding "byte4be" in %s on line %d
302bool(false)
303string(11) "ISO-8859-15"
304
305-- Iteration 39 --
306string(11) "ISO-8859-15"
307
308Warning: mb_regex_encoding(): Unknown encoding "byte4le" in %s on line %d
309bool(false)
310string(11) "ISO-8859-15"
311
312-- Iteration 40 --
313string(11) "ISO-8859-15"
314
315Warning: mb_regex_encoding(): Unknown encoding "BASE64" in %s on line %d
316bool(false)
317string(11) "ISO-8859-15"
318
319-- Iteration 41 --
320string(11) "ISO-8859-15"
321
322Warning: mb_regex_encoding(): Unknown encoding "HTML-ENTITIES" in %s on line %d
323bool(false)
324string(11) "ISO-8859-15"
325
326-- Iteration 42 --
327string(11) "ISO-8859-15"
328
329Warning: mb_regex_encoding(): Unknown encoding "7bit" in %s on line %d
330bool(false)
331string(11) "ISO-8859-15"
332
333-- Iteration 43 --
334string(11) "ISO-8859-15"
335
336Warning: mb_regex_encoding(): Unknown encoding "8bit" in %s on line %d
337bool(false)
338string(11) "ISO-8859-15"
339
340-- Iteration 44 --
341string(11) "ISO-8859-15"
342bool(true)
343string(6) "EUC-CN"
344
345-- Iteration 45 --
346string(6) "EUC-CN"
347
348Warning: mb_regex_encoding(): Unknown encoding "CP936" in %s on line %d
349bool(false)
350string(6) "EUC-CN"
351
352-- Iteration 46 --
353string(6) "EUC-CN"
354
355Warning: mb_regex_encoding(): Unknown encoding "HZ" in %s on line %d
356bool(false)
357string(6) "EUC-CN"
358
359-- Iteration 47 --
360string(6) "EUC-CN"
361bool(true)
362string(6) "EUC-TW"
363
364-- Iteration 48 --
365string(6) "EUC-TW"
366
367Warning: mb_regex_encoding(): Unknown encoding "CP950" in %s on line %d
368bool(false)
369string(6) "EUC-TW"
370
371-- Iteration 49 --
372string(6) "EUC-TW"
373bool(true)
374string(4) "BIG5"
375
376-- Iteration 50 --
377string(4) "BIG5"
378bool(true)
379string(6) "EUC-KR"
380
381-- Iteration 51 --
382string(6) "EUC-KR"
383
384Warning: mb_regex_encoding(): Unknown encoding "UHC" in %s on line %d
385bool(false)
386string(6) "EUC-KR"
387
388-- Iteration 52 --
389string(6) "EUC-KR"
390
391Warning: mb_regex_encoding(): Unknown encoding "ISO-2022-KR" in %s on line %d
392bool(false)
393string(6) "EUC-KR"
394
395-- Iteration 53 --
396string(6) "EUC-KR"
397
398Warning: mb_regex_encoding(): Unknown encoding "Windows-1251" in %s on line %d
399bool(false)
400string(6) "EUC-KR"
401
402-- Iteration 54 --
403string(6) "EUC-KR"
404
405Warning: mb_regex_encoding(): Unknown encoding "Windows-1252" in %s on line %d
406bool(false)
407string(6) "EUC-KR"
408
409-- Iteration 55 --
410string(6) "EUC-KR"
411
412Warning: mb_regex_encoding(): Unknown encoding "CP866" in %s on line %d
413bool(false)
414string(6) "EUC-KR"
415
416-- Iteration 56 --
417string(6) "EUC-KR"
418bool(true)
419string(5) "KOI8R"
420Done