1--TEST--
2Test str_split() function : usage variations - different single quoted strings for 'str' argument
3--FILE--
4<?php
5/* Prototype  : array str_split(string $str [, int $split_length])
6 * Description: Convert a string to an array. If split_length is
7                specified, break the string down into chunks each
8                split_length characters long.
9 * Source code: ext/standard/string.c
10 * Alias to functions: none
11*/
12
13/*
14* passing different single quoted strings as 'str' argument to str_split()
15* split_length is set to 5
16*/
17
18echo "*** Testing str_split() : single quoted strings for 'str' ***\n";
19
20//Initialize variables
21$split_length = 5;
22
23// different values for 'str'
24$values = array(
25  '',  //empty
26  ' ',  //space
27  '1234', //with only numbers
28  'simple string',  //regular string
29  'It\'s string with quote',  //string containing single quote
30  'string\tcontains\rwhite space\nchars',
31  'containing @ # $ % ^ & chars',
32  'with 1234 numbers',
33  'with \0 and ".chr(0)."null chars',  //for binary safe
34  'with    multiple     space char',
35  'Testing invalid \k and \m escape char',
36  'to check with \\n and \\t' //ignoring \n and \t results
37);
38
39//loop through each element of $values for 'str' argument
40for($count = 0; $count < count($values); $count++) {
41  echo "-- Iteration ".($count+1)." --\n";
42  var_dump( str_split($values[$count], $split_length) );
43}
44echo "Done"
45?>
46--EXPECTF--
47*** Testing str_split() : single quoted strings for 'str' ***
48-- Iteration 1 --
49array(1) {
50  [0]=>
51  string(0) ""
52}
53-- Iteration 2 --
54array(1) {
55  [0]=>
56  string(1) " "
57}
58-- Iteration 3 --
59array(1) {
60  [0]=>
61  string(4) "1234"
62}
63-- Iteration 4 --
64array(3) {
65  [0]=>
66  string(5) "simpl"
67  [1]=>
68  string(5) "e str"
69  [2]=>
70  string(3) "ing"
71}
72-- Iteration 5 --
73array(5) {
74  [0]=>
75  string(5) "It's "
76  [1]=>
77  string(5) "strin"
78  [2]=>
79  string(5) "g wit"
80  [3]=>
81  string(5) "h quo"
82  [4]=>
83  string(2) "te"
84}
85-- Iteration 6 --
86array(8) {
87  [0]=>
88  string(5) "strin"
89  [1]=>
90  string(5) "g\tco"
91  [2]=>
92  string(5) "ntain"
93  [3]=>
94  string(5) "s\rwh"
95  [4]=>
96  string(5) "ite s"
97  [5]=>
98  string(5) "pace\"
99  [6]=>
100  string(5) "nchar"
101  [7]=>
102  string(1) "s"
103}
104-- Iteration 7 --
105array(6) {
106  [0]=>
107  string(5) "conta"
108  [1]=>
109  string(5) "ining"
110  [2]=>
111  string(5) " @ # "
112  [3]=>
113  string(5) "$ % ^"
114  [4]=>
115  string(5) " & ch"
116  [5]=>
117  string(3) "ars"
118}
119-- Iteration 8 --
120array(4) {
121  [0]=>
122  string(5) "with "
123  [1]=>
124  string(5) "1234 "
125  [2]=>
126  string(5) "numbe"
127  [3]=>
128  string(2) "rs"
129}
130-- Iteration 9 --
131array(7) {
132  [0]=>
133  string(5) "with "
134  [1]=>
135  string(5) "\0 an"
136  [2]=>
137  string(5) "d ".c"
138  [3]=>
139  string(5) "hr(0)"
140  [4]=>
141  string(5) "."nul"
142  [5]=>
143  string(5) "l cha"
144  [6]=>
145  string(2) "rs"
146}
147-- Iteration 10 --
148array(7) {
149  [0]=>
150  string(5) "with "
151  [1]=>
152  string(5) "   mu"
153  [2]=>
154  string(5) "ltipl"
155  [3]=>
156  string(5) "e    "
157  [4]=>
158  string(5) " spac"
159  [5]=>
160  string(5) "e cha"
161  [6]=>
162  string(1) "r"
163}
164-- Iteration 11 --
165array(8) {
166  [0]=>
167  string(5) "Testi"
168  [1]=>
169  string(5) "ng in"
170  [2]=>
171  string(5) "valid"
172  [3]=>
173  string(5) " \k a"
174  [4]=>
175  string(5) "nd \m"
176  [5]=>
177  string(5) " esca"
178  [6]=>
179  string(5) "pe ch"
180  [7]=>
181  string(2) "ar"
182}
183-- Iteration 12 --
184array(5) {
185  [0]=>
186  string(5) "to ch"
187  [1]=>
188  string(5) "eck w"
189  [2]=>
190  string(5) "ith \"
191  [3]=>
192  string(5) "n and"
193  [4]=>
194  string(3) " \t"
195}
196Done
197