]> granicus.if.org Git - php/blob
e6e510dd55
[php] /
1 --TEST--
2 Test strrchr() function : usage variations - single quoted strings
3 --FILE--
4 <?php
5 /* Prototype  : string strrchr(string $haystack, string $needle);
6  * Description: Finds the last occurrence of a character in a string.
7  * Source code: ext/standard/string.c
8 */
9
10 /* Test strrchr() function by passing various single quoted strings to 'haystack' & 'needle' */
11
12 echo "*** Testing strrchr() function: with various single quoted strings ***";
13 $haystack = 'Hello,\t\n\0\n  $&!#%\o,()*+-./:;<=>?@hello123456he \x234 \101 ';
14 $needle = array(
15   //regular strings
16   'l',
17   'L',
18   'HELLO',
19   'hEllo',
20
21   //escape characters
22   '\t',
23   '\T',
24   '     ',
25   '\n',
26   '\N',
27   '
28 ',  //new line
29
30   //nulls
31   '\0',
32   NULL,
33   null,
34
35   //boolean false
36   FALSE,
37   false,
38
39   //empty string
40   '',
41
42   //special chars
43   ' ',
44   '$',
45   ' $',
46   '&',
47   '!#',
48   '%\o',
49   '\o,',
50   '()',
51   '*+',
52   '+',
53   '-',
54   '.',
55   '.;',
56   ':;',
57   ';',
58   '<=>',
59   '>',
60   '=>',
61   '?',
62   '@',
63   '@hEllo',
64
65   '12345', //decimal numeric string
66   '\x23',  //hexadecimal numeric string
67   '#',  //hexadecimal numeric string
68   '\101',  //octal numeric string
69   'A',
70   '456HEE',  //numerics + chars
71   42, //needle as int(ASCII value of '*')
72   $haystack  //haystack as needle
73 );
74
75 /* loop through to get the position of the needle in haystack string */
76 $count = 1;
77 for($index=0; $index<count($needle); $index++) {
78   echo "\n-- Iteration $count --\n";
79   var_dump( strrchr($haystack, $needle[$index]) );
80   $count ++;
81 }
82 echo "*** Done ***";
83 ?>
84 --EXPECT--
85 *** Testing strrchr() function: with various single quoted strings ***
86 -- Iteration 1 --
87 string(22) "lo123456he \x234 \101 "
88
89 -- Iteration 2 --
90 bool(false)
91
92 -- Iteration 3 --
93 string(63) "Hello,\t\n\0\n  $&!#%\o,()*+-./:;<=>?@hello123456he \x234 \101 "
94
95 -- Iteration 4 --
96 string(14) "he \x234 \101 "
97
98 -- Iteration 5 --
99 string(5) "\101 "
100
101 -- Iteration 6 --
102 string(5) "\101 "
103
104 -- Iteration 7 --
105 string(1) " "
106
107 -- Iteration 8 --
108 string(5) "\101 "
109
110 -- Iteration 9 --
111 string(5) "\101 "
112
113 -- Iteration 10 --
114 bool(false)
115
116 -- Iteration 11 --
117 string(5) "\101 "
118
119 -- Iteration 12 --
120 bool(false)
121
122 -- Iteration 13 --
123 bool(false)
124
125 -- Iteration 14 --
126 bool(false)
127
128 -- Iteration 15 --
129 bool(false)
130
131 -- Iteration 16 --
132 bool(false)
133
134 -- Iteration 17 --
135 string(1) " "
136
137 -- Iteration 18 --
138 string(47) "$&!#%\o,()*+-./:;<=>?@hello123456he \x234 \101 "
139
140 -- Iteration 19 --
141 string(1) " "
142
143 -- Iteration 20 --
144 string(46) "&!#%\o,()*+-./:;<=>?@hello123456he \x234 \101 "
145
146 -- Iteration 21 --
147 string(45) "!#%\o,()*+-./:;<=>?@hello123456he \x234 \101 "
148
149 -- Iteration 22 --
150 string(43) "%\o,()*+-./:;<=>?@hello123456he \x234 \101 "
151
152 -- Iteration 23 --
153 string(5) "\101 "
154
155 -- Iteration 24 --
156 string(39) "()*+-./:;<=>?@hello123456he \x234 \101 "
157
158 -- Iteration 25 --
159 string(37) "*+-./:;<=>?@hello123456he \x234 \101 "
160
161 -- Iteration 26 --
162 string(36) "+-./:;<=>?@hello123456he \x234 \101 "
163
164 -- Iteration 27 --
165 string(35) "-./:;<=>?@hello123456he \x234 \101 "
166
167 -- Iteration 28 --
168 string(34) "./:;<=>?@hello123456he \x234 \101 "
169
170 -- Iteration 29 --
171 string(34) "./:;<=>?@hello123456he \x234 \101 "
172
173 -- Iteration 30 --
174 string(32) ":;<=>?@hello123456he \x234 \101 "
175
176 -- Iteration 31 --
177 string(31) ";<=>?@hello123456he \x234 \101 "
178
179 -- Iteration 32 --
180 string(30) "<=>?@hello123456he \x234 \101 "
181
182 -- Iteration 33 --
183 string(28) ">?@hello123456he \x234 \101 "
184
185 -- Iteration 34 --
186 string(29) "=>?@hello123456he \x234 \101 "
187
188 -- Iteration 35 --
189 string(27) "?@hello123456he \x234 \101 "
190
191 -- Iteration 36 --
192 string(26) "@hello123456he \x234 \101 "
193
194 -- Iteration 37 --
195 string(26) "@hello123456he \x234 \101 "
196
197 -- Iteration 38 --
198 string(2) "1 "
199
200 -- Iteration 39 --
201 string(5) "\101 "
202
203 -- Iteration 40 --
204 string(44) "#%\o,()*+-./:;<=>?@hello123456he \x234 \101 "
205
206 -- Iteration 41 --
207 string(5) "\101 "
208
209 -- Iteration 42 --
210 bool(false)
211
212 -- Iteration 43 --
213 string(7) "4 \101 "
214
215 -- Iteration 44 --
216 string(7) "4 \101 "
217
218 -- Iteration 45 --
219 string(63) "Hello,\t\n\0\n  $&!#%\o,()*+-./:;<=>?@hello123456he \x234 \101 "
220 *** Done ***