Annotation of embedaddon/php/ext/pcre/tests/004.phpt, revision 1.1
1.1 ! misho 1: --TEST--
! 2: abusing pcre
! 3: --FILE--
! 4: <?php
! 5:
! 6: var_dump(preg_match_all('/((?:(?:unsigned|struct)\s+)?\w+)(?:\s*(\*+)\s+|\s+(\**))(\w+(?:\[\s*\w*\s*\])?)\s*(?:(=)[^,;]+)?((?:\s*,\s*\**\s*\w+(?:\[\s*\w*\s*\])?\s*(?:=[^,;]+)?)*)\s*;/S', 'unsigned int xpto = 124; short a, b;', $m, PREG_SET_ORDER));
! 7: var_dump($m);
! 8:
! 9: var_dump(preg_match_all('/(?:\([^)]+\))?(&?)([\w>.()-]+(?:\[\w+\])?)\s*,?((?:\)*\s*=)?)/S', '&a, b, &c', $m, PREG_SET_ORDER));
! 10: var_dump($m);
! 11:
! 12: var_dump(preg_match_all('/zend_parse_parameters(?:_ex\s*\([^,]+,[^,]+|\s*\([^,]+),\s*"([^"]*)"\s*,\s*([^{;]*)/S', 'zend_parse_parameters( 0, "addd|s/", a, b, &c);', $m, PREG_SET_ORDER | PREG_OFFSET_CAPTURE));
! 13: var_dump($m);
! 14:
! 15: var_dump(preg_replace(array('@//.*@S', '@/\*.*\*/@SsUe'), array('', 'preg_replace("/[^\r\n]+/S", "", \'$0\')'), "hello\n//x \n/*\ns\n*/"));
! 16:
! 17: var_dump(preg_split('/PHP_(?:NAMED_)?(?:FUNCTION|METHOD)\s*\((\w+(?:,\s*\w+)?)\)/S', "PHP_FUNCTION(s, preg_match)\n{\nlalala", -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_OFFSET_CAPTURE));
! 18: ?>
! 19: --EXPECT--
! 20: int(2)
! 21: array(2) {
! 22: [0]=>
! 23: array(7) {
! 24: [0]=>
! 25: string(24) "unsigned int xpto = 124;"
! 26: [1]=>
! 27: string(12) "unsigned int"
! 28: [2]=>
! 29: string(0) ""
! 30: [3]=>
! 31: string(0) ""
! 32: [4]=>
! 33: string(4) "xpto"
! 34: [5]=>
! 35: string(1) "="
! 36: [6]=>
! 37: string(0) ""
! 38: }
! 39: [1]=>
! 40: array(7) {
! 41: [0]=>
! 42: string(11) "short a, b;"
! 43: [1]=>
! 44: string(5) "short"
! 45: [2]=>
! 46: string(0) ""
! 47: [3]=>
! 48: string(0) ""
! 49: [4]=>
! 50: string(1) "a"
! 51: [5]=>
! 52: string(0) ""
! 53: [6]=>
! 54: string(3) ", b"
! 55: }
! 56: }
! 57: int(3)
! 58: array(3) {
! 59: [0]=>
! 60: array(4) {
! 61: [0]=>
! 62: string(3) "&a,"
! 63: [1]=>
! 64: string(1) "&"
! 65: [2]=>
! 66: string(1) "a"
! 67: [3]=>
! 68: string(0) ""
! 69: }
! 70: [1]=>
! 71: array(4) {
! 72: [0]=>
! 73: string(2) "b,"
! 74: [1]=>
! 75: string(0) ""
! 76: [2]=>
! 77: string(1) "b"
! 78: [3]=>
! 79: string(0) ""
! 80: }
! 81: [2]=>
! 82: array(4) {
! 83: [0]=>
! 84: string(2) "&c"
! 85: [1]=>
! 86: string(1) "&"
! 87: [2]=>
! 88: string(1) "c"
! 89: [3]=>
! 90: string(0) ""
! 91: }
! 92: }
! 93: int(1)
! 94: array(1) {
! 95: [0]=>
! 96: array(3) {
! 97: [0]=>
! 98: array(2) {
! 99: [0]=>
! 100: string(46) "zend_parse_parameters( 0, "addd|s/", a, b, &c)"
! 101: [1]=>
! 102: int(0)
! 103: }
! 104: [1]=>
! 105: array(2) {
! 106: [0]=>
! 107: string(7) "addd|s/"
! 108: [1]=>
! 109: int(27)
! 110: }
! 111: [2]=>
! 112: array(2) {
! 113: [0]=>
! 114: string(9) "a, b, &c)"
! 115: [1]=>
! 116: int(37)
! 117: }
! 118: }
! 119: }
! 120: string(9) "hello
! 121:
! 122:
! 123:
! 124: "
! 125: array(3) {
! 126: [0]=>
! 127: array(2) {
! 128: [0]=>
! 129: string(0) ""
! 130: [1]=>
! 131: int(0)
! 132: }
! 133: [1]=>
! 134: array(2) {
! 135: [0]=>
! 136: string(13) "s, preg_match"
! 137: [1]=>
! 138: int(13)
! 139: }
! 140: [2]=>
! 141: array(2) {
! 142: [0]=>
! 143: string(9) "
! 144: {
! 145: lalala"
! 146: [1]=>
! 147: int(27)
! 148: }
! 149: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>