3v4l.org

run code in 500+ PHP versions simultaneously
<?php $htmlString = <<<HTML <div class="singlepost"> <ul class="linha_status" style=""> <li>Status: <b>Objeto em trânsito - por favor aguarde</b></li> <li>Data : 24/10/2021 | Hora: 12:04</li> <li>Origem: Unidade de Tratamento - Jaboatao Dos Guararapes / PE</li> <li>Destino: Agência dos Correios - Cuitegi / PB</li> </ul> <ul class="linha_status" style=""> <li>Status: <b>Objeto em trânsito - por favor aguarde</b></li> <li>Data : 19/10/2021 | Hora: 00:03</li> <li>Origem: Unidade de Logística Integrada - Curitiba / PR</li> <li>Destino: Unidade de Tratamento - Recife / PE</li> </ul> <ul class="linha_status" style=""> <li>Status: <b>Fiscalização aduaneira finalizada</b></li> <li>Data : 18/10/2021 | Hora: 23:35</li> <li>Local: Unidade Operacional - Curitiba / PR</li> </ul> <ul class="linha_status" style=""> <li>Status: <b>Objeto recebido pelos Correios do Brasil</b></li> <li>Data : 16/10/2021 | Hora: 11:45</li> <li>Local: Unidade de Logística Integrada - Curitiba / PR</li> </ul> <ul class="linha_status" style=""> <li>Status: <b>Objeto postado</b></li> <li>Data : 14/10/2021 | Hora: 20:30</li> <li>Local: País - / </li> </ul> </div> HTML; $result = []; $doc = new DOMDocument; $doc->loadHTML('<?xml encoding="UTF-8">' . $htmlString); $xpath = new DOMXPath($doc); foreach ($xpath->query('//ul[@class="linha_status"]') as $i => $ul) { foreach ($xpath->query('li', $ul) as $li) { foreach (explode("|", $li->nodeValue) as $segment) { [$key, $result[$i][$key]] = preg_split('/\s*:\s*/', trim($segment), 2); } } } var_export($result);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 17, Position 2 = 50
Branch analysis from position: 17
2 jumps found. (Code = 78) Position 1 = 18, Position 2 = 50
Branch analysis from position: 18
2 jumps found. (Code = 77) Position 1 = 24, Position 2 = 48
Branch analysis from position: 24
2 jumps found. (Code = 78) Position 1 = 25, Position 2 = 48
Branch analysis from position: 25
2 jumps found. (Code = 77) Position 1 = 31, Position 2 = 46
Branch analysis from position: 31
2 jumps found. (Code = 78) Position 1 = 32, Position 2 = 46
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
Branch analysis from position: 46
1 jumps found. (Code = 42) Position 1 = 24
Branch analysis from position: 24
Branch analysis from position: 46
Branch analysis from position: 48
1 jumps found. (Code = 42) Position 1 = 17
Branch analysis from position: 17
Branch analysis from position: 48
Branch analysis from position: 50
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 50
filename:       /in/D0Ppi
function name:  (null)
number of ops:  55
compiled vars:  !0 = $htmlString, !1 = $result, !2 = $doc, !3 = $xpath, !4 = $ul, !5 = $i, !6 = $li, !7 = $segment, !8 = $key
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, '%3Cdiv+class%3D%22singlepost%22%3E%0A%09%0A%3Cul+class%3D%22linha_status%22+style%3D%22%22%3E%0A%3Cli%3EStatus%3A+%3Cb%3EObjeto+em+tr%C3%A2nsito+-+por+favor+aguarde%3C%2Fb%3E%3C%2Fli%3E%0A%3Cli%3EData++%3A+24%2F10%2F2021+%7C+Hora%3A+12%3A04%3C%2Fli%3E%09%09%09%0A%3Cli%3EOrigem%3A+Unidade+de+Tratamento+-+Jaboatao+Dos+Guararapes+%2F+PE%3C%2Fli%3E%0A%3Cli%3EDestino%3A+Ag%C3%AAncia+dos+Correios+-+Cuitegi+%2F+PB%3C%2Fli%3E%0A%3C%2Ful%3E%0A%0A%3Cul+class%3D%22linha_status%22+style%3D%22%22%3E%0A%3Cli%3EStatus%3A+%3Cb%3EObjeto+em+tr%C3%A2nsito+-+por+favor+aguarde%3C%2Fb%3E%3C%2Fli%3E%0A%3Cli%3EData++%3A+19%2F10%2F2021+%7C+Hora%3A+00%3A03%3C%2Fli%3E%09%09%09%0A%3Cli%3EOrigem%3A+Unidade+de+Log%C3%ADstica+Integrada+-+Curitiba+%2F+PR%3C%2Fli%3E%0A%3Cli%3EDestino%3A+Unidade+de+Tratamento+-+Recife+%2F+PE%3C%2Fli%3E%0A%3C%2Ful%3E%0A%0A%3Cul+class%3D%22linha_status%22+style%3D%22%22%3E%0A%3Cli%3EStatus%3A+%3Cb%3EFiscaliza%C3%A7%C3%A3o+aduaneira+finalizada%3C%2Fb%3E%3C%2Fli%3E%0A%3Cli%3EData++%3A+18%2F10%2F2021+%7C+Hora%3A+23%3A35%3C%2Fli%3E%0A%3Cli%3ELocal%3A+Unidade+Operacional+-+Curitiba+%2F+PR%3C%2Fli%3E%0A%3C%2Ful%3E%0A%0A%3Cul+class%3D%22linha_status%22+style%3D%22%22%3E%0A%3Cli%3EStatus%3A+%3Cb%3EObjeto+recebido+pelos+Correios+do+Brasil%3C%2Fb%3E%3C%2Fli%3E%0A%3Cli%3EData++%3A+16%2F10%2F2021+%7C+Hora%3A+11%3A45%3C%2Fli%3E%0A%3Cli%3ELocal%3A+Unidade+de+Log%C3%ADstica+Integrada+-+Curitiba+%2F+PR%3C%2Fli%3E%0A%3C%2Ful%3E%0A%0A%3Cul+class%3D%22linha_status%22+style%3D%22%22%3E%0A%3Cli%3EStatus%3A+%3Cb%3EObjeto+postado%3C%2Fb%3E%3C%2Fli%3E%0A%3Cli%3EData++%3A+14%2F10%2F2021+%7C+Hora%3A+20%3A30%3C%2Fli%3E%0A%3Cli%3ELocal%3A+Pa%C3%ADs+-++%2F+%3C%2Fli%3E%0A%3C%2Ful%3E%0A%0A%3C%2Fdiv%3E'
   41     1        ASSIGN                                                       !1, <array>
   43     2        NEW                                                  $11     'DOMDocument'
          3        DO_FCALL                                          0          
          4        ASSIGN                                                       !2, $11
   44     5        INIT_METHOD_CALL                                             !2, 'loadHTML'
          6        CONCAT                                               ~14     '%3C%3Fxml+encoding%3D%22UTF-8%22%3E', !0
          7        SEND_VAL_EX                                                  ~14
          8        DO_FCALL                                          0          
   45     9        NEW                                                  $16     'DOMXPath'
         10        SEND_VAR_EX                                                  !2
         11        DO_FCALL                                          0          
         12        ASSIGN                                                       !3, $16
   46    13        INIT_METHOD_CALL                                             !3, 'query'
         14        SEND_VAL_EX                                                  '%2F%2Ful%5B%40class%3D%22linha_status%22%5D'
         15        DO_FCALL                                          0  $19     
         16      > FE_RESET_R                                           $20     $19, ->50
         17    > > FE_FETCH_R                                           ~21     $20, !4, ->50
         18    >   ASSIGN                                                       !5, ~21
   47    19        INIT_METHOD_CALL                                             !3, 'query'
         20        SEND_VAL_EX                                                  'li'
         21        SEND_VAR_EX                                                  !4
         22        DO_FCALL                                          0  $23     
         23      > FE_RESET_R                                           $24     $23, ->48
         24    > > FE_FETCH_R                                                   $24, !6, ->48
   48    25    >   INIT_FCALL                                                   'explode'
         26        SEND_VAL                                                     '%7C'
         27        FETCH_OBJ_R                                          ~25     !6, 'nodeValue'
         28        SEND_VAL                                                     ~25
         29        DO_ICALL                                             $26     
         30      > FE_RESET_R                                           $27     $26, ->46
         31    > > FE_FETCH_R                                                   $27, !7, ->46
   49    32    >   INIT_FCALL                                                   'preg_split'
         33        SEND_VAL                                                     '%2F%5Cs%2A%3A%5Cs%2A%2F'
         34        FRAMELESS_ICALL_1                trim                ~28     !7
         35        SEND_VAL                                                     ~28
         36        SEND_VAL                                                     2
         37        DO_ICALL                                             $29     
         38        FETCH_LIST_R                                         $30     $29, 0
         39        ASSIGN                                                       !8, $30
         40        FETCH_LIST_R                                         $32     $29, 1
         41        FETCH_DIM_W                                          $33     !1, !5
         42        ASSIGN_DIM                                                   $33, !8
         43        OP_DATA                                                      $32
         44        FREE                                                         $29
   48    45      > JMP                                                          ->31
         46    >   FE_FREE                                                      $27
   47    47      > JMP                                                          ->24
         48    >   FE_FREE                                                      $24
   46    49      > JMP                                                          ->17
         50    >   FE_FREE                                                      $20
   53    51        INIT_FCALL                                                   'var_export'
         52        SEND_VAR                                                     !1
         53        DO_ICALL                                                     
         54      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
165.87 ms | 2289 KiB | 16 Q