Return to strrchr_variation2.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / strings |
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 ***