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