3v4l.org

run code in 300+ PHP versions simultaneously
<?php $string = "ukahfranklin@yahoo.com, abhishek.b@contecglobal.com, Ukah Franklin B , <<option1>>, <<<option2>>>, Okechukwu Second name\n Abuja Airport, abvairport@contecglobal.com,<<<this option2>>>\n accounts.abuja@contecglobal.com, Accounts Abuja \n dejiashiru@contecglobal.com, Adeji Ashiru "; $result=array(); $no=0; $var = explode("\n",$string); foreach($var as $v){ $w = preg_split('/[,;]/',$v); foreach($w as $l){ if(preg_match('/((?<option2>(<{3}.+>{3}))|(?<option1>(<{2}.+>{2}))|(?<email>([a-zA-Z0-9.!#$%&?+\/=?^_`{|}~-]+@{1}[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]{2,}){1,11}))|(?<name>([^<>]{2,10}[\w\W])+))/', $l, $matches)){ if(!empty($matches['option2'])){$result[$no]['option2']=$matches['option2'];} if(!empty($matches['option1'])){$result[$no]['option1']=$matches['option1'];} if(!empty($matches['email'])){$result[$no]['email']=$matches['email'];} if(!empty($matches['name'])){$result[$no]['name']=$matches['name'];} } } $no++; } print("<pre>".print_r($result,true)."</pre>"); exit();
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 9, Position 2 = 55
Branch analysis from position: 9
2 jumps found. (Code = 78) Position 1 = 10, Position 2 = 55
Branch analysis from position: 10
2 jumps found. (Code = 77) Position 1 = 16, Position 2 = 52
Branch analysis from position: 16
2 jumps found. (Code = 78) Position 1 = 17, Position 2 = 52
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 51
Branch analysis from position: 23
2 jumps found. (Code = 43) Position 1 = 26, Position 2 = 30
Branch analysis from position: 26
2 jumps found. (Code = 43) Position 1 = 33, Position 2 = 37
Branch analysis from position: 33
2 jumps found. (Code = 43) Position 1 = 40, Position 2 = 44
Branch analysis from position: 40
2 jumps found. (Code = 43) Position 1 = 47, Position 2 = 51
Branch analysis from position: 47
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 51
Branch analysis from position: 44
Branch analysis from position: 37
Branch analysis from position: 30
Branch analysis from position: 51
Branch analysis from position: 52
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
Branch analysis from position: 52
Branch analysis from position: 55
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 55
filename:       /in/ZBkgp
function name:  (null)
number of ops:  65
compiled vars:  !0 = $string, !1 = $result, !2 = $no, !3 = $var, !4 = $v, !5 = $w, !6 = $l, !7 = $matches
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, 'ukahfranklin%40yahoo.com%2C+abhishek.b%40contecglobal.com%2C++Ukah+Franklin+B+%2C+%3C%3Coption1%3E%3E%2C+%3C%3C%3Coption2%3E%3E%3E%2C+Okechukwu+Second+name%0A%0A+Abuja+Airport%2C+abvairport%40contecglobal.com%2C%3C%3C%3Cthis+option2%3E%3E%3E%0A%0Aaccounts.abuja%40contecglobal.com%2C+Accounts+Abuja+%0A%0Adejiashiru%40contecglobal.com%2C+Adeji+Ashiru+'
    8     1        ASSIGN                                                   !1, <array>
    9     2        ASSIGN                                                   !2, 0
   10     3        INIT_FCALL                                               'explode'
          4        SEND_VAL                                                 '%0A'
          5        SEND_VAR                                                 !0
          6        DO_ICALL                                         $11     
          7        ASSIGN                                                   !3, $11
   11     8      > FE_RESET_R                                       $13     !3, ->55
          9    > > FE_FETCH_R                                               $13, !4, ->55
   12    10    >   INIT_FCALL                                               'preg_split'
         11        SEND_VAL                                                 '%2F%5B%2C%3B%5D%2F'
         12        SEND_VAR                                                 !4
         13        DO_ICALL                                         $14     
         14        ASSIGN                                                   !5, $14
   13    15      > FE_RESET_R                                       $16     !5, ->52
         16    > > FE_FETCH_R                                               $16, !6, ->52
   14    17    >   INIT_FCALL                                               'preg_match'
         18        SEND_VAL                                                 '%2F%28%28%3F%3Coption2%3E%28%3C%7B3%7D.%2B%3E%7B3%7D%29%29%7C%28%3F%3Coption1%3E%28%3C%7B2%7D.%2B%3E%7B2%7D%29%29%7C%28%3F%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%3F%3Cname%3E%28%5B%5E%3C%3E%5D%7B2%2C10%7D%5B%5Cw%5CW%5D%29%2B%29%29%2F'
         19        SEND_VAR                                                 !6
         20        SEND_REF                                                 !7
         21        DO_ICALL                                         $17     
         22      > JMPZ                                                     $17, ->51
   16    23    >   ISSET_ISEMPTY_DIM_OBJ                         1  ~18     !7, 'option2'
         24        BOOL_NOT                                         ~19     ~18
         25      > JMPZ                                                     ~19, ->30
         26    >   FETCH_DIM_R                                      ~22     !7, 'option2'
         27        FETCH_DIM_W                                      $20     !1, !2
         28        ASSIGN_DIM                                               $20, 'option2'
         29        OP_DATA                                                  ~22
   18    30    >   ISSET_ISEMPTY_DIM_OBJ                         1  ~23     !7, 'option1'
         31        BOOL_NOT                                         ~24     ~23
         32      > JMPZ                                                     ~24, ->37
         33    >   FETCH_DIM_R                                      ~27     !7, 'option1'
         34        FETCH_DIM_W                                      $25     !1, !2
         35        ASSIGN_DIM                                               $25, 'option1'
         36        OP_DATA                                                  ~27
   20    37    >   ISSET_ISEMPTY_DIM_OBJ                         1  ~28     !7, 'email'
         38        BOOL_NOT                                         ~29     ~28
         39      > JMPZ                                                     ~29, ->44
         40    >   FETCH_DIM_R                                      ~32     !7, 'email'
         41        FETCH_DIM_W                                      $30     !1, !2
         42        ASSIGN_DIM                                               $30, 'email'
         43        OP_DATA                                                  ~32
   22    44    >   ISSET_ISEMPTY_DIM_OBJ                         1  ~33     !7, 'name'
         45        BOOL_NOT                                         ~34     ~33
         46      > JMPZ                                                     ~34, ->51
         47    >   FETCH_DIM_R                                      ~37     !7, 'name'
         48        FETCH_DIM_W                                      $35     !1, !2
         49        ASSIGN_DIM                                               $35, 'name'
         50        OP_DATA                                                  ~37
   13    51    > > JMP                                                      ->16
         52    >   FE_FREE                                                  $16
   26    53        PRE_INC                                                  !2
   11    54      > JMP                                                      ->9
         55    >   FE_FREE                                                  $13
   29    56        INIT_FCALL                                               'print_r'
         57        SEND_VAR                                                 !1
         58        SEND_VAL                                                 <true>
         59        DO_ICALL                                         $39     
         60        CONCAT                                           ~40     '%3Cpre%3E', $39
         61        CONCAT                                           ~41     ~40, '%3C%2Fpre%3E'
         62        ECHO                                                     ~41
         63      > EXIT                                                     
         64*     > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
173.18 ms | 1400 KiB | 21 Q