Return to strspn_variation6.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / standard / tests / strings |
1.1 misho 1: --TEST-- 2: Test strspn() function : usage variations - with heredoc strings, varying mask & default start and len args 3: --FILE-- 4: <?php 5: /* Prototype : proto int strspn(string str, string mask [, int start [, int len]]) 6: * Description: Finds length of initial segment consisting entirely of characters found in mask. 7: If start or/and length is provided works like strspn(substr($s,$start,$len),$good_chars) 8: * Source code: ext/standard/string.c 9: * Alias to functions: none 10: */ 11: 12: /* 13: * Testing strspn() : with heredoc string, varying mask and default start and len arguments 14: */ 15: 16: echo "*** Testing strspn() : with different mask strings ***\n"; 17: 18: // initialing required variables 19: // defining different heredoc strings 20: $empty_heredoc = <<<EOT 21: EOT; 22: 23: $heredoc_with_newline = <<<EOT 24: \n 25: 26: EOT; 27: 28: $heredoc_with_characters = <<<EOT 29: first line of heredoc string 30: second line of heredoc string 31: third line of heredocstring 32: EOT; 33: 34: $heredoc_with_newline_and_tabs = <<<EOT 35: hello\tworld\nhello\nworld\n 36: EOT; 37: 38: $heredoc_with_alphanumerics = <<<EOT 39: hello123world456 40: 1234hello\t1234 41: EOT; 42: 43: $heredoc_with_embedded_nulls = <<<EOT 44: hello\0world\0hello 45: \0hello\0 46: EOT; 47: 48: $heredoc_with_hexa_octal = <<<EOT 49: hello\0\100\xaaworld\0hello 50: \0hello\0 51: EOT; 52: 53: // defining array of different heredoc strings 54: $heredoc_strings = array( 55: $empty_heredoc, 56: $heredoc_with_newline, 57: $heredoc_with_characters, 58: $heredoc_with_newline_and_tabs, 59: $heredoc_with_alphanumerics, 60: $heredoc_with_embedded_nulls, 61: $heredoc_with_hexa_octal 62: ); 63: 64: // defining array of different mask strings 65: $mask_array = array( 66: "", 67: '', 68: "fh\ne\trlsti \l", 69: 'fieh\n\trlsti \l', 70: "\t", 71: "lt\ ", 72: 'l\t', 73: "fl\t\eh ", 74: "l \te", 75: "lf\the\i\100\xaa" 76: ); 77: 78: 79: // loop through each element of the array for different heredoc and mask strings 80: 81: $count = 1; 82: 83: foreach($heredoc_strings as $str) { 84: echo "\n-- Iteration $count --\n"; 85: foreach($mask_array as $mask) { 86: var_dump( strspn($str,$mask) ); // with default start and len value 87: } 88: $count++; 89: } 90: 91: echo "Done" 92: ?> 93: --EXPECTF-- 94: *** Testing strspn() : with different mask strings *** 95: 96: -- Iteration 1 -- 97: int(0) 98: int(0) 99: int(0) 100: int(0) 101: int(0) 102: int(0) 103: int(0) 104: int(0) 105: int(0) 106: int(0) 107: 108: -- Iteration 2 -- 109: int(0) 110: int(0) 111: int(2) 112: int(0) 113: int(0) 114: int(0) 115: int(0) 116: int(0) 117: int(0) 118: int(0) 119: 120: -- Iteration 3 -- 121: int(0) 122: int(0) 123: int(8) 124: int(11) 125: int(0) 126: int(0) 127: int(0) 128: int(1) 129: int(0) 130: int(2) 131: 132: -- Iteration 4 -- 133: int(0) 134: int(0) 135: int(4) 136: int(4) 137: int(0) 138: int(0) 139: int(0) 1.1.1.2 ! misho 140: int(1) 1.1 misho 141: int(0) 142: int(4) 143: 144: -- Iteration 5 -- 145: int(0) 146: int(0) 147: int(4) 148: int(4) 149: int(0) 150: int(0) 151: int(0) 1.1.1.2 ! misho 152: int(1) 1.1 misho 153: int(0) 154: int(4) 155: 156: -- Iteration 6 -- 157: int(0) 158: int(0) 159: int(4) 160: int(4) 161: int(0) 162: int(0) 163: int(0) 1.1.1.2 ! misho 164: int(1) 1.1 misho 165: int(0) 166: int(4) 167: 168: -- Iteration 7 -- 169: int(0) 170: int(0) 171: int(4) 172: int(4) 173: int(0) 174: int(0) 175: int(0) 1.1.1.2 ! misho 176: int(1) 1.1 misho 177: int(0) 178: int(4) 1.1.1.2 ! misho 179: Done