3v4l.org

run code in 300+ PHP versions simultaneously
<?php $html = '<div> <table> <tbody> <tr class="mes"><td colspan="5">Enero</td></tr> <tr class="dia-info"> ........ </tr> <tr class="datos"> <div class="div1"> ........ </div> <div class="div2"> ........ </div> </tr> <tr class="dia-info"> ........ </tr> <tr class="datos"> <div class="div1"> ........ </div> <div class="div2"> ........ </div> </tr> <tr class="dia-info"> ........ </tr> <tr class="datos"> <div class="div1"> ........ </div> <div class="div2"> ........ </div> </tr> <tr class="mes"><td colspan="5">Febrero</td></tr> <tr class="dia-info"> ........ </tr> <tr class="datos"> <div class="div1"> ........ </div> <div class="div2"> ........ </div> </tr> </tbody> </table> </div> '; //Generar el DOM $dom = new DOMDocument; $libxml_opciones = LIBXML_COMPACT | LIBXML_HTML_NODEFDTD | LIBXML_NONET | LIBXML_NOERROR; @$dom->loadHTML($html, $libxml_opciones); //Obtenemos todas las tablas en el doc $tablas = $dom->getElementsByTagName('table'); //Recorremos c/u foreach ($tablas as $tabla) { //Obtenemos cada <tr> $trs = $tabla->getElementsByTagName('tr'); $fila_nro = 0; //Recorremos c/u foreach ($trs as $tr) { // Y acá podemos manipular cada <tr>, haciendo lo que quieras hacer // Luego, obtenemos el HTML de este elemento como texto: $html_fila = $dom->saveHTML($tr); //podemos imprimir el HTML de la fila para depurar lo que hicimos echo ('HTML Fila: ' . ++$fila_nro . "\n$html_fila\n\n"); } }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 16, Position 2 = 38
Branch analysis from position: 16
2 jumps found. (Code = 78) Position 1 = 17, Position 2 = 38
Branch analysis from position: 17
2 jumps found. (Code = 77) Position 1 = 23, Position 2 = 36
Branch analysis from position: 23
2 jumps found. (Code = 78) Position 1 = 24, Position 2 = 36
Branch analysis from position: 24
1 jumps found. (Code = 42) Position 1 = 23
Branch analysis from position: 23
Branch analysis from position: 36
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 36
Branch analysis from position: 38
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 38
filename:       /in/4dOXh
function name:  (null)
number of ops:  40
compiled vars:  !0 = $html, !1 = $dom, !2 = $libxml_opciones, !3 = $tablas, !4 = $tabla, !5 = $trs, !6 = $fila_nro, !7 = $tr, !8 = $html_fila
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '%3Cdiv%3E%0A%3Ctable%3E%0A%3Ctbody%3E%0A%3Ctr+class%3D%22mes%22%3E%3Ctd+colspan%3D%225%22%3EEnero%3C%2Ftd%3E%3C%2Ftr%3E%0A%3Ctr+class%3D%22dia-info%22%3E%0A........%0A%3C%2Ftr%3E%0A%3Ctr+class%3D%22datos%22%3E%0A%3Cdiv+class%3D%22div1%22%3E%0A........%0A%3C%2Fdiv%3E%0A%3Cdiv+class%3D%22div2%22%3E%0A........%0A%3C%2Fdiv%3E%0A%3C%2Ftr%3E%0A%3Ctr+class%3D%22dia-info%22%3E%0A........%0A%3C%2Ftr%3E%0A%3Ctr+class%3D%22datos%22%3E%0A%3Cdiv+class%3D%22div1%22%3E%0A........%0A%3C%2Fdiv%3E%0A%3Cdiv+class%3D%22div2%22%3E%0A........%0A%3C%2Fdiv%3E%0A%3C%2Ftr%3E%0A%3Ctr+class%3D%22dia-info%22%3E%0A........%0A%3C%2Ftr%3E%0A%3Ctr+class%3D%22datos%22%3E%0A%3Cdiv+class%3D%22div1%22%3E%0A........%0A%3C%2Fdiv%3E%0A%3Cdiv+class%3D%22div2%22%3E%0A........%0A%3C%2Fdiv%3E%0A%3C%2Ftr%3E%0A%3Ctr+class%3D%22mes%22%3E%3Ctd+colspan%3D%225%22%3EFebrero%3C%2Ftd%3E%3C%2Ftr%3E+++%0A%3Ctr+class%3D%22dia-info%22%3E%0A........%0A%3C%2Ftr%3E%0A%3Ctr+class%3D%22datos%22%3E%0A%3Cdiv+class%3D%22div1%22%3E%0A........%0A%3C%2Fdiv%3E%0A%3Cdiv+class%3D%22div2%22%3E%0A........%0A%3C%2Fdiv%3E%0A%3C%2Ftr%3E++%0A%3C%2Ftbody%3E+++%0A%3C%2Ftable%3E+++%0A%3C%2Fdiv%3E+'
   57     1        NEW                                              $10     'DOMDocument'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !1, $10
   58     4        ASSIGN                                                   !2, 67620
   59     5        BEGIN_SILENCE                                    ~14     
          6        INIT_METHOD_CALL                                         !1, 'loadHTML'
          7        SEND_VAR_EX                                              !0
          8        SEND_VAR_EX                                              !2
          9        DO_FCALL                                      0          
         10        END_SILENCE                                              ~14
   63    11        INIT_METHOD_CALL                                         !1, 'getElementsByTagName'
         12        SEND_VAL_EX                                              'table'
         13        DO_FCALL                                      0  $16     
         14        ASSIGN                                                   !3, $16
   65    15      > FE_RESET_R                                       $18     !3, ->38
         16    > > FE_FETCH_R                                               $18, !4, ->38
   67    17    >   INIT_METHOD_CALL                                         !4, 'getElementsByTagName'
         18        SEND_VAL_EX                                              'tr'
         19        DO_FCALL                                      0  $19     
         20        ASSIGN                                                   !5, $19
   68    21        ASSIGN                                                   !6, 0
   70    22      > FE_RESET_R                                       $22     !5, ->36
         23    > > FE_FETCH_R                                               $22, !7, ->36
   76    24    >   INIT_METHOD_CALL                                         !1, 'saveHTML'
         25        SEND_VAR_EX                                              !7
         26        DO_FCALL                                      0  $23     
         27        ASSIGN                                                   !8, $23
   79    28        PRE_INC                                          ~25     !6
         29        CONCAT                                           ~26     'HTML+Fila%3A+', ~25
         30        ROPE_INIT                                     3  ~28     '%0A'
         31        ROPE_ADD                                      1  ~28     ~28, !8
         32        ROPE_END                                      2  ~27     ~28, '%0A%0A'
         33        CONCAT                                           ~30     ~26, ~27
         34        ECHO                                                     ~30
   70    35      > JMP                                                      ->23
         36    >   FE_FREE                                                  $22
   65    37      > JMP                                                      ->16
         38    >   FE_FREE                                                  $18
   83    39      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
289.82 ms | 1007 KiB | 13 Q