3v4l.org

run code in 300+ PHP versions simultaneously
<?php $html = <<<HTML <table class="mytable"> <tbody><tr> <td>date</td> <td>td1</td> <td>time</td> <td>td2</td> </tr></tbody> </table> HTML; $dom = new DOMDocument; $dom->loadHTML($html, LIBXML_HTML_NOIMPLIED | LIBXML_HTML_NODEFDTD); $xpath = new DOMXPath($dom); foreach ($xpath->query("//table[@class='mytable']/tbody/tr") as $tr) { $tds = $tr->getElementsByTagName("td"); $tds->item(2)->nodeValue = $tds->item(0)->nodeValue . ' ' . $tds->item(2)->nodeValue; $tr->removeChild($tds->item(0)); } echo $dom->saveHTML();
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 16, Position 2 = 44
Branch analysis from position: 16
2 jumps found. (Code = 78) Position 1 = 17, Position 2 = 44
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 44
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 44
filename:       /in/3Q6JL
function name:  (null)
number of ops:  49
compiled vars:  !0 = $html, !1 = $dom, !2 = $xpath, !3 = $tr, !4 = $tds
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '%3Ctable+class%3D%22mytable%22%3E%0A++%3Ctbody%3E%3Ctr%3E%0A++++++%3Ctd%3Edate%3C%2Ftd%3E%0A++++++%3Ctd%3Etd1%3C%2Ftd%3E%0A++++++%3Ctd%3Etime%3C%2Ftd%3E%0A++++++%3Ctd%3Etd2%3C%2Ftd%3E%0A++++%3C%2Ftr%3E%3C%2Ftbody%3E%0A%3C%2Ftable%3E'
   14     1        NEW                                              $6      'DOMDocument'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !1, $6
   15     4        INIT_METHOD_CALL                                         !1, 'loadHTML'
          5        SEND_VAR_EX                                              !0
          6        SEND_VAL_EX                                              8196
          7        DO_FCALL                                      0          
   16     8        NEW                                              $10     'DOMXPath'
          9        SEND_VAR_EX                                              !1
         10        DO_FCALL                                      0          
         11        ASSIGN                                                   !2, $10
   17    12        INIT_METHOD_CALL                                         !2, 'query'
         13        SEND_VAL_EX                                              '%2F%2Ftable%5B%40class%3D%27mytable%27%5D%2Ftbody%2Ftr'
         14        DO_FCALL                                      0  $13     
         15      > FE_RESET_R                                       $14     $13, ->44
         16    > > FE_FETCH_R                                               $14, !3, ->44
   18    17    >   INIT_METHOD_CALL                                         !3, 'getElementsByTagName'
         18        SEND_VAL_EX                                              'td'
         19        DO_FCALL                                      0  $15     
         20        ASSIGN                                                   !4, $15
   19    21        INIT_METHOD_CALL                                         !4, 'item'
         22        SEND_VAL_EX                                              2
         23        DO_FCALL                                      0  $17     
         24        SEPARATE                                         $17     $17
         25        INIT_METHOD_CALL                                         !4, 'item'
         26        SEND_VAL_EX                                              0
         27        DO_FCALL                                      0  $19     
         28        FETCH_OBJ_R                                      ~20     $19, 'nodeValue'
   20    29        CONCAT                                           ~21     ~20, '+'
         30        INIT_METHOD_CALL                                         !4, 'item'
         31        SEND_VAL_EX                                              2
         32        DO_FCALL                                      0  $22     
         33        FETCH_OBJ_R                                      ~23     $22, 'nodeValue'
         34        CONCAT                                           ~24     ~21, ~23
   19    35        ASSIGN_OBJ                                               $17, 'nodeValue'
   20    36        OP_DATA                                                  ~24
   21    37        INIT_METHOD_CALL                                         !3, 'removeChild'
         38        INIT_METHOD_CALL                                         !4, 'item'
         39        SEND_VAL_EX                                              0
         40        DO_FCALL                                      0  $25     
         41        SEND_VAR_NO_REF_EX                                       $25
         42        DO_FCALL                                      0          
   17    43      > JMP                                                      ->16
         44    >   FE_FREE                                                  $14
   23    45        INIT_METHOD_CALL                                         !1, 'saveHTML'
         46        DO_FCALL                                      0  $27     
         47        ECHO                                                     $27
         48      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
150.05 ms | 1012 KiB | 13 Q