1--TEST--
2Test base64_decode() function : basic functionality - strict vs non-strict with non-base64 chars.
3--FILE--
4<?php
5/* Prototype  : proto string base64_decode(string str[, bool strict])
6 * Description: Decodes string using MIME base64 algorithm
7 * Source code: ext/standard/base64.c
8 * Alias to functions:
9 */
10
11echo "Decode 'hello world!':\n";
12$noWhiteSpace = "aGVsbG8gd29ybGQh";
13var_dump(base64_decode($noWhiteSpace));
14var_dump(base64_decode($noWhiteSpace, false));
15var_dump(base64_decode($noWhiteSpace, true));
16
17echo "\nWhitespace does not affect base64_decode, even with \$strict===true:\n";
18$withWhiteSpace = "a GVs   bG8gd2
19		 				9ybGQh";
20var_dump(base64_decode($withWhiteSpace));
21var_dump(base64_decode($withWhiteSpace, false));
22var_dump(base64_decode($withWhiteSpace, true));
23
24echo "\nOther chars outside the base64 alphabet are ignored when \$strict===false, but cause failure with \$strict===true:\n";
25$badChars = $noWhiteSpace . '*';
26var_dump(base64_decode($badChars));
27var_dump(base64_decode($badChars, false));
28var_dump(base64_decode($badChars, true));
29
30echo "Done";
31?>
32--EXPECTF--
33Decode 'hello world!':
34string(12) "hello world!"
35string(12) "hello world!"
36string(12) "hello world!"
37
38Whitespace does not affect base64_decode, even with $strict===true:
39string(12) "hello world!"
40string(12) "hello world!"
41string(12) "hello world!"
42
43Other chars outside the base64 alphabet are ignored when $strict===false, but cause failure with $strict===true:
44string(12) "hello world!"
45string(12) "hello world!"
46bool(false)
47Done