Annotation of embedaddon/php/ext/standard/tests/strings/strrchr_variation2.phpt, revision 1.1.1.1
1.1 misho 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: --EXPECTF--
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(37) "*+-./:;<=>?@hello123456he \x234 \101 "
217:
218: -- Iteration 45 --
219: string(63) "Hello,\t\n\0\n $&!#%\o,()*+-./:;<=>?@hello123456he \x234 \101 "
220: *** Done ***
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>