3v4l.org

run code in 300+ PHP versions simultaneously
<?php $string = "abhishek.b@contecglobal.com, Abhishek B , <<option1>>, <<<option2>>>\n abvairport@contecglobal.com, Abuja Airport\n accounts.abuja@contecglobal.com, Accounts Abuja \n dejiashiru@contecglobal.com, Adeji Ashiru "; $var = explode("\n",$string); foreach($var as $v){ $w = preg_split('/[,;]/',$v); foreach($w as $l){ if(preg_match('/((?P<option2>(<{3}\w+{3}))|(?P<option1>(<{2}\w+>{2}))|((?P<email>([a-zA-Z0-9.!#$%&?+\/=?^_`{|}~-]+@{1}[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]{2,}){1,11}))|(?P<name>([\w]))){2,4}/', $l, $matches)){ echo $matches['email']."\n"; } } }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 7, Position 2 = 27
Branch analysis from position: 7
2 jumps found. (Code = 78) Position 1 = 8, Position 2 = 27
Branch analysis from position: 8
2 jumps found. (Code = 77) Position 1 = 14, Position 2 = 25
Branch analysis from position: 14
2 jumps found. (Code = 78) Position 1 = 15, Position 2 = 25
Branch analysis from position: 15
2 jumps found. (Code = 43) Position 1 = 21, Position 2 = 24
Branch analysis from position: 21
1 jumps found. (Code = 42) Position 1 = 14
Branch analysis from position: 14
Branch analysis from position: 24
Branch analysis from position: 25
1 jumps found. (Code = 42) Position 1 = 7
Branch analysis from position: 7
Branch analysis from position: 25
Branch analysis from position: 27
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 27
filename:       /in/gnjH8
function name:  (null)
number of ops:  29
compiled vars:  !0 = $string, !1 = $var, !2 = $v, !3 = $w, !4 = $l, !5 = $matches
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, 'abhishek.b%40contecglobal.com%2C+Abhishek+B+%2C+%3C%3Coption1%3E%3E%2C+%3C%3C%3Coption2%3E%3E%3E%0A%0Aabvairport%40contecglobal.com%2C+Abuja+Airport%0A%0Aaccounts.abuja%40contecglobal.com%2C+Accounts+Abuja+%0A%0Adejiashiru%40contecglobal.com%2C+Adeji+Ashiru+'
    9     1        INIT_FCALL                                               'explode'
          2        SEND_VAL                                                 '%0A'
          3        SEND_VAR                                                 !0
          4        DO_ICALL                                         $7      
          5        ASSIGN                                                   !1, $7
   10     6      > FE_RESET_R                                       $9      !1, ->27
          7    > > FE_FETCH_R                                               $9, !2, ->27
   11     8    >   INIT_FCALL                                               'preg_split'
          9        SEND_VAL                                                 '%2F%5B%2C%3B%5D%2F'
         10        SEND_VAR                                                 !2
         11        DO_ICALL                                         $10     
         12        ASSIGN                                                   !3, $10
   12    13      > FE_RESET_R                                       $12     !3, ->25
         14    > > FE_FETCH_R                                               $12, !4, ->25
   13    15    >   INIT_FCALL                                               'preg_match'
         16        SEND_VAL                                                 '%2F%28%28%3FP%3Coption2%3E%28%3C%7B3%7D%5Cw%2B%7B3%7D%29%29%7C%28%3FP%3Coption1%3E%28%3C%7B2%7D%5Cw%2B%3E%7B2%7D%29%29%7C%28%28%3FP%3Cemail%3E%28%5Ba-zA-Z0-9.%21%23%24%25%26%3F%2B%5C%2F%3D%3F%5E_%60%7B%7C%7D%7E-%5D%2B%40%7B1%7D%5Ba-zA-Z0-9-%5D%2B%28%5C.%5Ba-zA-Z0-9-%5D%7B2%2C%7D%29%7B1%2C11%7D%29%29%7C%28%3FP%3Cname%3E%28%5B%5Cw%5D%29%29%29%7B2%2C4%7D%2F'
         17        SEND_VAR                                                 !4
         18        SEND_REF                                                 !5
         19        DO_ICALL                                         $13     
         20      > JMPZ                                                     $13, ->24
   14    21    >   FETCH_DIM_R                                      ~14     !5, 'email'
         22        CONCAT                                           ~15     ~14, '%0A'
         23        ECHO                                                     ~15
   12    24    > > JMP                                                      ->14
         25    >   FE_FREE                                                  $12
   10    26      > JMP                                                      ->7
         27    >   FE_FREE                                                  $9
   17    28      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
136.76 ms | 1005 KiB | 16 Q