1--TEST-- 2Test 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 12echo "*** 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; 77for($index=0; $index<count($needle); $index++) { 78 echo "\n-- Iteration $count --\n"; 79 var_dump( strrchr($haystack, $needle[$index]) ); 80 $count ++; 81} 82echo "*** Done ***"; 83?> 84--EXPECTF-- 85*** Testing strrchr() function: with various single quoted strings *** 86-- Iteration 1 -- 87string(22) "lo123456he \x234 \101 " 88 89-- Iteration 2 -- 90bool(false) 91 92-- Iteration 3 -- 93string(63) "Hello,\t\n\0\n $&!#%\o,()*+-./:;<=>?@hello123456he \x234 \101 " 94 95-- Iteration 4 -- 96string(14) "he \x234 \101 " 97 98-- Iteration 5 -- 99string(5) "\101 " 100 101-- Iteration 6 -- 102string(5) "\101 " 103 104-- Iteration 7 -- 105string(1) " " 106 107-- Iteration 8 -- 108string(5) "\101 " 109 110-- Iteration 9 -- 111string(5) "\101 " 112 113-- Iteration 10 -- 114bool(false) 115 116-- Iteration 11 -- 117string(5) "\101 " 118 119-- Iteration 12 -- 120bool(false) 121 122-- Iteration 13 -- 123bool(false) 124 125-- Iteration 14 -- 126bool(false) 127 128-- Iteration 15 -- 129bool(false) 130 131-- Iteration 16 -- 132bool(false) 133 134-- Iteration 17 -- 135string(1) " " 136 137-- Iteration 18 -- 138string(47) "$&!#%\o,()*+-./:;<=>?@hello123456he \x234 \101 " 139 140-- Iteration 19 -- 141string(1) " " 142 143-- Iteration 20 -- 144string(46) "&!#%\o,()*+-./:;<=>?@hello123456he \x234 \101 " 145 146-- Iteration 21 -- 147string(45) "!#%\o,()*+-./:;<=>?@hello123456he \x234 \101 " 148 149-- Iteration 22 -- 150string(43) "%\o,()*+-./:;<=>?@hello123456he \x234 \101 " 151 152-- Iteration 23 -- 153string(5) "\101 " 154 155-- Iteration 24 -- 156string(39) "()*+-./:;<=>?@hello123456he \x234 \101 " 157 158-- Iteration 25 -- 159string(37) "*+-./:;<=>?@hello123456he \x234 \101 " 160 161-- Iteration 26 -- 162string(36) "+-./:;<=>?@hello123456he \x234 \101 " 163 164-- Iteration 27 -- 165string(35) "-./:;<=>?@hello123456he \x234 \101 " 166 167-- Iteration 28 -- 168string(34) "./:;<=>?@hello123456he \x234 \101 " 169 170-- Iteration 29 -- 171string(34) "./:;<=>?@hello123456he \x234 \101 " 172 173-- Iteration 30 -- 174string(32) ":;<=>?@hello123456he \x234 \101 " 175 176-- Iteration 31 -- 177string(31) ";<=>?@hello123456he \x234 \101 " 178 179-- Iteration 32 -- 180string(30) "<=>?@hello123456he \x234 \101 " 181 182-- Iteration 33 -- 183string(28) ">?@hello123456he \x234 \101 " 184 185-- Iteration 34 -- 186string(29) "=>?@hello123456he \x234 \101 " 187 188-- Iteration 35 -- 189string(27) "?@hello123456he \x234 \101 " 190 191-- Iteration 36 -- 192string(26) "@hello123456he \x234 \101 " 193 194-- Iteration 37 -- 195string(26) "@hello123456he \x234 \101 " 196 197-- Iteration 38 -- 198string(2) "1 " 199 200-- Iteration 39 -- 201string(5) "\101 " 202 203-- Iteration 40 -- 204string(44) "#%\o,()*+-./:;<=>?@hello123456he \x234 \101 " 205 206-- Iteration 41 -- 207string(5) "\101 " 208 209-- Iteration 42 -- 210bool(false) 211 212-- Iteration 43 -- 213string(7) "4 \101 " 214 215-- Iteration 44 -- 216string(37) "*+-./:;<=>?@hello123456he \x234 \101 " 217 218-- Iteration 45 -- 219string(63) "Hello,\t\n\0\n $&!#%\o,()*+-./:;<=>?@hello123456he \x234 \101 " 220*** Done *** 221