|
| 1 | +@ok callback benchmark k2_skip |
| 2 | +<?php |
| 3 | + |
| 4 | +var_dump (preg_match_all ('~<.*>~', 'This is <something> <something else> <something further> no more', $v)); var_dump ($v); |
| 5 | +var_dump (preg_match_all ('~.*?~', 'This', $v)); var_dump ($v); |
| 6 | +var_dump (preg_match_all ('~.*~', 'This', $v)); var_dump ($v); |
| 7 | + |
| 8 | +var_dump (preg_match_all ('~<.*?>~', 'This is <something> <something else> <something further> no more', $v)); var_dump ($v); |
| 9 | + |
| 10 | +var_dump (preg_match_all ('~(\d+|)~', '12|34|567|', $v)); var_dump ($v); |
| 11 | +var_dump (preg_match_all ('~(\d+\|)~', '12|34|567|', $v)); var_dump ($v); |
| 12 | +var_dump (preg_match_all ('~((\d)+\|)~', '12|34|567|', $v)); var_dump ($v); |
| 13 | +var_dump (preg_match_all ('~((\d)+\|)+~', '12|34|567|', $v)); var_dump ($v); |
| 14 | +var_dump (preg_match_all ('~((\d+)\|)+~', '12|34|567|', $v)); var_dump ($v); |
| 15 | + |
| 16 | + |
| 17 | +$html = "<b>bold text</b><a href=howdy.html>click me</a>"; |
| 18 | + |
| 19 | +preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER); |
| 20 | + |
| 21 | +foreach ($matches as $val) { |
| 22 | + echo "matched: " . $val[0] . "\n"; |
| 23 | + echo "part 1: " . $val[1] . "\n"; |
| 24 | + echo "part 2: " . $val[2] . "\n"; |
| 25 | + echo "part 3: " . $val[3] . "\n"; |
| 26 | + echo "part 4: " . $val[4] . "\n\n"; |
| 27 | +} |
| 28 | + |
| 29 | +preg_match_all("/\(? (\d{3})? \)? (?(1) [\-\s] ) \d{3}-\d{4}/x", |
| 30 | + "Call 555-1212 or 1-800-555-1212", $phones); |
| 31 | + |
| 32 | +$str = <<<FOO |
| 33 | +a: 1 |
| 34 | +b: 2 |
| 35 | +c: 3 |
| 36 | +FOO; |
| 37 | + |
| 38 | +preg_match_all('/(?P<name>\w+): (?P<digit>\d+)/', $str, $matches); |
| 39 | + |
| 40 | +print_r($matches); |
| 41 | + |
| 42 | + |
| 43 | +for ($i = 0; $i < 8000; $i++) { |
| 44 | +// foreach (array('((?P<abacaba>1)?(?P<name>[a-c]+):() (?P<digit>\d+)(?P<php_bug>a)?)', '=A=i', "/(a)?/") as $pattern) { |
| 45 | + foreach (array('((1)?([a-c]+):() (\d+)(a)?)', '=A=i', "/(a)?/") as $pattern) { |
| 46 | + foreach (array($str0, '', "a", "1abAcaba", "dad") as $str) { |
| 47 | + preg_match_all ($pattern, $str, $matches, PREG_PATTERN_ORDER | PREG_OFFSET_CAPTURE); |
| 48 | + if ($i == 0) { |
| 49 | + var_dump ("preg_match_all($pattern, $str, PREG_PATTERN_ORDER | PREG_OFFSET_CAPTURE)"); |
| 50 | + var_dump ($matches); |
| 51 | + } |
| 52 | + |
| 53 | + preg_match_all ($pattern, $str, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE); |
| 54 | + if ($i == 0) { |
| 55 | + var_dump ("preg_match_all ($pattern, $str, PREG_SET_ORDER | PREG_OFFSET_CAPTURE)"); |
| 56 | + var_dump ($matches); |
| 57 | + } |
| 58 | + |
| 59 | + preg_match_all ($pattern, $str, $matches, PREG_PATTERN_ORDER); |
| 60 | + if ($i == 0) { |
| 61 | + var_dump ("preg_match_all ($pattern, $str, PREG_PATTERN_ORDER)"); |
| 62 | + var_dump ($matches); |
| 63 | + } |
| 64 | + |
| 65 | + preg_match_all ($pattern, $str, $matches, PREG_SET_ORDER); |
| 66 | + if ($i == 0) { |
| 67 | + var_dump ("preg_match_all ($pattern, $str, PREG_SET_ORDER)"); |
| 68 | + var_dump ($matches); |
| 69 | + } |
| 70 | + |
| 71 | + preg_match ($pattern, $str, $matches, PREG_OFFSET_CAPTURE); |
| 72 | + if ($i == 0) { |
| 73 | + var_dump ("preg_match ($pattern, $str, PREG_OFFSET_CAPTURE)"); |
| 74 | + var_dump ($matches); |
| 75 | + } |
| 76 | + |
| 77 | + preg_match ($pattern, $str, $matches); |
| 78 | + if ($i == 0) { |
| 79 | + var_dump ("preg_match ($pattern, $str)"); |
| 80 | + var_dump ($matches); |
| 81 | + } |
| 82 | + } |
| 83 | + } |
| 84 | +} |
| 85 | + |
| 86 | + |
| 87 | +foreach (array(PREG_PATTERN_ORDER, PREG_SET_ORDER) as $flag) { |
| 88 | + var_dump(preg_match_all('~ |
| 89 | + (?P<date> |
| 90 | + (?P<year>(\d{2})?\d\d) - |
| 91 | + (?P<month>(?:\d\d|[a-zA-Z]{2,3})) - |
| 92 | + (?P<day>[0-3]?\d)) |
| 93 | + ~x', |
| 94 | + '2006-05-13 e outra data: "12-Aug-37"', $m, $flag)); |
| 95 | + |
| 96 | + var_dump($m); |
| 97 | +} |
| 98 | + |
| 99 | + |
| 100 | +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*;/', 'unsigned int xpto = 124; short a, b;', $m, PREG_SET_ORDER)); |
| 101 | +var_dump($m); |
| 102 | + |
| 103 | +var_dump(preg_match_all('/(?:\([^)]+\))?(&?)([\w>.()-]+(?:\[\w+\])?)\s*,?((?:\)*\s*=)?)/', '&a, b, &c', $m, PREG_SET_ORDER)); |
| 104 | +var_dump($m); |
| 105 | + |
| 106 | +var_dump(preg_match_all('/zend_parse_parameters(?:_ex\s*\([^,]+,[^,]+|\s*\([^,]+),\s*"([^"]*)"\s*,\s*([^{;]*)/', 'zend_parse_parameters( 0, "addd|s/", a, b, &c);', $m, PREG_SET_ORDER | PREG_OFFSET_CAPTURE)); |
| 107 | +var_dump($m); |
| 108 | + |
| 109 | + |
| 110 | +$sampledata = " |
| 111 | +/p2/var/php_gcov/PHP_4_4/ext/ming/ming.c: In function `zif_swfbitmap_init': |
| 112 | +/p2/var/php_gcov/PHP_4_4/ext/ming/ming.c:323: warning: assignment from incompatible pointer type |
| 113 | +/p2/var/php_gcov/PHP_4_4/ext/ming/ming.c: In function `zif_swftextfield_setFont': |
| 114 | +/p2/var/php_gcov/PHP_4_4/ext/ming/ming.c:2597: warning: passing arg 2 of `SWFTextField_setFont' from incompatible pointer type |
| 115 | +/p2/var/php_gcov/PHP_4_4/ext/oci8/oci8.c:1027: warning: `oci_ping' defined but not used |
| 116 | +/p2/var/php_gcov/PHP_4_4/ext/posix/posix.c: In function `zif_posix_getpgid': |
| 117 | +/p2/var/php_gcov/PHP_4_4/ext/posix/posix.c:484: warning: implicit declaration of function `getpgid' |
| 118 | +/p2/var/php_gcov/PHP_4_4/ext/posix/posix.c: In function `zif_posix_getsid': |
| 119 | +/p2/var/php_gcov/PHP_4_4/ext/posix/posix.c:506: warning: implicit declaration of function `getsid' |
| 120 | +/p2/var/php_gcov/PHP_4_4/ext/session/mod_files.c: In function `ps_read_files': |
| 121 | +/p2/var/php_gcov/PHP_4_4/ext/session/mod_files.c:302: warning: implicit declaration of function `pread' |
| 122 | +/p2/var/php_gcov/PHP_4_4/ext/session/mod_files.c: In function `ps_write_files': |
| 123 | +/p2/var/php_gcov/PHP_4_4/ext/session/mod_files.c:340: warning: implicit declaration of function `pwrite' |
| 124 | +/p2/var/php_gcov/PHP_4_4/ext/sockets/sockets.c: In function `zif_socket_get_option': |
| 125 | +/p2/var/php_gcov/PHP_4_4/ext/sockets/sockets.c:1862: warning: unused variable `timeout' |
| 126 | +/p2/var/php_gcov/PHP_4_4/ext/sockets/sockets.c: In function `zif_socket_set_option': |
| 127 | +/p2/var/php_gcov/PHP_4_4/ext/sockets/sockets.c:1941: warning: unused variable `timeout' |
| 128 | +/p2/var/php_gcov/PHP_4_4/regex/regexec.c:19: warning: `nope' defined but not used |
| 129 | +/p2/var/php_gcov/PHP_4_4/ext/standard/exec.c:50: warning: `php_make_safe_mode_command' defined but not used |
| 130 | +/p2/var/php_gcov/PHP_4_4/ext/standard/image.c: In function `php_handle_jpc': |
| 131 | +/p2/var/php_gcov/PHP_4_4/ext/standard/image.c:604: warning: unused variable `dummy_int' |
| 132 | +/p2/var/php_gcov/PHP_4_4/ext/standard/parsedate.c: In function `php_gd_parse': |
| 133 | +/p2/var/php_gcov/PHP_4_4/ext/standard/parsedate.c:1138: warning: implicit declaration of function `php_gd_lex' |
| 134 | +/p2/var/php_gcov/PHP_4_4/ext/standard/parsedate.y: At top level: |
| 135 | +/p2/var/php_gcov/PHP_4_4/ext/standard/parsedate.y:864: warning: return type defaults to `int' |
| 136 | +/p2/var/php_gcov/PHP_4_4/ext/sysvmsg/sysvmsg.c: In function `zif_msg_receive': |
| 137 | +/p2/var/php_gcov/PHP_4_4/ext/sysvmsg/sysvmsg.c:318: warning: passing arg 2 of `php_var_unserialize' from incompatible pointer type |
| 138 | +/p2/var/php_gcov/PHP_4_4/ext/yp/yp.c: In function `zif_yp_err_string': |
| 139 | +/p2/var/php_gcov/PHP_4_4/ext/yp/yp.c:372: warning: assignment discards qualifiers from pointer target type |
| 140 | +Zend/zend_language_scanner.c:5944: warning: `yy_fatal_error' defined but not used |
| 141 | +Zend/zend_language_scanner.c:2627: warning: `yy_last_accepting_state' defined but not used |
| 142 | +Zend/zend_language_scanner.c:2628: warning: `yy_last_accepting_cpos' defined but not used |
| 143 | +Zend/zend_language_scanner.c:2634: warning: `yy_more_flag' defined but not used |
| 144 | +Zend/zend_language_scanner.c:2635: warning: `yy_more_len' defined but not used |
| 145 | +Zend/zend_language_scanner.c:5483: warning: `yyunput' defined but not used |
| 146 | +Zend/zend_language_scanner.c:5929: warning: `yy_top_state' defined but not used |
| 147 | +conflicts: 2 shift/reduce |
| 148 | +Zend/zend_ini_scanner.c:457: warning: `yy_last_accepting_state' defined but not used |
| 149 | +Zend/zend_ini_scanner.c:458: warning: `yy_last_accepting_cpos' defined but not used |
| 150 | +Zend/zend_ini_scanner.c:1361: warning: `yyunput' defined but not used |
| 151 | +/p2/var/php_gcov/PHP_4_4/Zend/zend_alloc.c: In function `_safe_emalloc': |
| 152 | +/p2/var/php_gcov/PHP_4_4/Zend/zend_alloc.c:237: warning: long int format, size_t arg (arg 3) |
| 153 | +/p2/var/php_gcov/PHP_4_4/Zend/zend_alloc.c:237: warning: long int format, size_t arg (arg 4) |
| 154 | +/p2/var/php_gcov/PHP_4_4/Zend/zend_alloc.c:237: warning: long int format, size_t arg (arg 5) |
| 155 | +/p2/var/php_gcov/PHP_4_4/Zend/zend_ini.c:338: warning: `zend_ini_displayer_cb' defined but not used |
| 156 | +ext/mysql/libmysql/my_tempnam.o(.text+0x80): In function `my_tempnam': |
| 157 | +/p2/var/php_gcov/PHP_4_4/ext/mysql/libmysql/my_tempnam.c:115: warning: the use of `tempnam' is dangerous, better use `mkstemp' |
| 158 | +ext/mysql/libmysql/my_tempnam.o(.text+0x80): In function `my_tempnam': |
| 159 | +/p2/var/php_gcov/PHP_4_4/ext/mysql/libmysql/my_tempnam.c:115: warning: the use of `tempnam' is dangerous, better use `mkstemp' |
| 160 | +ext/ming/ming.o(.text+0xc115): In function `zim_swfmovie_namedAnchor': |
| 161 | +/p2/var/php_gcov/PHP_5_2/ext/ming/ming.c:2207: undefined reference to `SWFMovie_namedAnchor' |
| 162 | +/p2/var/php_gcov/PHP_5_2/ext/ming/ming.c:2209: undefined reference to `SWFMovie_xpto' |
| 163 | +/p2/var/php_gcov/PHP_5_2/ext/ming/ming.c:2259: undefined reference to `SWFMovie_foo' |
| 164 | +ext/ming/ming.o(.text+0x851): In function `zif_ming_setSWFCompression': |
| 165 | +/p2/var/php_gcov/PHP_5_2/ext/ming/ming.c:154: undefined reference to `Ming_setSWFCompression' |
| 166 | +"; |
| 167 | + |
| 168 | +$gcc_regex = '/^((.+)(\(\.text\+0x[[:xdigit:]]+\))?: In function [`\'](\w+)\':\s+)?'. |
| 169 | + '((?(1)(?(3)[^:\n]+|\2)|[^:\n]+)):(\d+): (?:(error|warning):\s+)?(.+)'. |
| 170 | + str_repeat('(?:\s+\5:(\d+): (?:(error|warning):\s+)?(.+))?', 99). // capture up to 100 errors |
| 171 | + '/m'; |
| 172 | + |
| 173 | + |
| 174 | +var_dump(preg_match_all($gcc_regex, $sampledata, $m, PREG_SET_ORDER)); |
| 175 | +print_r($m); |
| 176 | + |
| 177 | + |
| 178 | +var_dump(preg_match_all('|(\w+)://([^\s"<]*[\w+#?/&=])|', "This is a text string", $matches, PREG_SET_ORDER)); |
| 179 | +var_dump($matches); |
| 180 | + |
| 181 | +/** |
| 182 | + * @return mixed |
| 183 | + */ |
| 184 | +function func1(){ |
| 185 | + $string = 'what the word and the other word the'; |
| 186 | + preg_match_all('/(?P<word>the)/', $string, $matches); |
| 187 | + return $matches['word']; |
| 188 | +} |
| 189 | +$words = func1(); |
| 190 | +var_dump($words); |
| 191 | + |
| 192 | + |
| 193 | +$pattern = |
| 194 | +"/\s([\w_\.\/]+)(?:=([\'\"]?(?:[\w\d\s\?=\(\)\.,'_#\/\\:;&-]|(?:\\\\\"|\\\')?)+[\'\"]?))?/"; |
| 195 | +$context = "<simpletag an_attribute=\"simpleValueInside\">"; |
| 196 | + |
| 197 | +$match = array(); |
| 198 | + |
| 199 | +if ($result = preg_match_all($pattern, $context, $match)) |
| 200 | +{ |
| 201 | +var_dump($result); |
| 202 | +var_dump($match); |
| 203 | +} |
| 204 | + |
| 205 | + |
| 206 | +var_dump(preg_match_all('/\d+/', '123 456 789 012', $match, 0)); |
| 207 | +var_dump($match); |
0 commit comments