3v4l.org

run code in 300+ PHP versions simultaneously
<?php function getColor($domnode) { while($domnode->parentNode) { if ($domnode->parentNode->getAttribute('color')) { return $domnode->parentNode->getAttribute('color'); } } } $html = '<FONT FACE="League" SIZE="15" COLOR="#000000"><font COLOR="#ff00ff" SIZE="18"><b><font SIZE="23"><font SIZE="27"><font SIZE="23"><font SIZE="18"><font SIZE="23">Moet Flip make-up dragen? <br />Stem mee in de poll!!</font></font></font></font></font></b></font><br /></FONT>'; $dom = new DOMDOcument(); $dom->loadHTML($html); $xpath = new DOMXPath($dom); $nodes = $xpath->evaluate("/html/body//text()"); foreach ($nodes as $node) { $color = getColor($node); var_dump($color); if ($color) { $span = $document->createElement('span'); $span->setAttribute('style', 'color: ' . $color . ';'); var_dump($node); $node->parentNode->replaceChild($span, $node); } } var_dump($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
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 43
Branch analysis from position: 25
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 43
Branch analysis from position: 44
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 44
filename:       /in/OKBHo
function name:  (null)
number of ops:  51
compiled vars:  !0 = $html, !1 = $dom, !2 = $xpath, !3 = $nodes, !4 = $node, !5 = $color, !6 = $span, !7 = $document
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   11     0  E >   ASSIGN                                                   !0, '%3CFONT+FACE%3D%22League%22+SIZE%3D%2215%22+COLOR%3D%22%23000000%22%3E%3Cfont+COLOR%3D%22%23ff00ff%22+SIZE%3D%2218%22%3E%3Cb%3E%3Cfont+SIZE%3D%2223%22%3E%3Cfont+SIZE%3D%2227%22%3E%3Cfont+SIZE%3D%2223%22%3E%3Cfont+SIZE%3D%2218%22%3E%3Cfont+SIZE%3D%2223%22%3EMoet+Flip+make-up+dragen%3F++%3Cbr+%2F%3EStem+mee+in+de+poll%21%21%3C%2Ffont%3E%3C%2Ffont%3E%3C%2Ffont%3E%3C%2Ffont%3E%3C%2Ffont%3E%3C%2Fb%3E%3C%2Ffont%3E%3Cbr+%2F%3E%3C%2FFONT%3E'
   13     1        NEW                                              $9      'DOMDOcument'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !1, $9
   14     4        INIT_METHOD_CALL                                         !1, 'loadHTML'
          5        SEND_VAR_EX                                              !0
          6        DO_FCALL                                      0          
   16     7        NEW                                              $13     'DOMXPath'
          8        SEND_VAR_EX                                              !1
          9        DO_FCALL                                      0          
         10        ASSIGN                                                   !2, $13
   18    11        INIT_METHOD_CALL                                         !2, 'evaluate'
         12        SEND_VAL_EX                                              '%2Fhtml%2Fbody%2F%2Ftext%28%29'
         13        DO_FCALL                                      0  $16     
         14        ASSIGN                                                   !3, $16
   20    15      > FE_RESET_R                                       $18     !3, ->44
         16    > > FE_FETCH_R                                               $18, !4, ->44
   21    17    >   INIT_FCALL                                               'getcolor'
         18        SEND_VAR                                                 !4
         19        DO_FCALL                                      0  $19     
         20        ASSIGN                                                   !5, $19
   22    21        INIT_FCALL                                               'var_dump'
         22        SEND_VAR                                                 !5
         23        DO_ICALL                                                 
   23    24      > JMPZ                                                     !5, ->43
   24    25    >   INIT_METHOD_CALL                                         !7, 'createElement'
         26        SEND_VAL_EX                                              'span'
         27        DO_FCALL                                      0  $22     
         28        ASSIGN                                                   !6, $22
   25    29        INIT_METHOD_CALL                                         !6, 'setAttribute'
         30        SEND_VAL_EX                                              'style'
         31        CONCAT                                           ~24     'color%3A+', !5
         32        CONCAT                                           ~25     ~24, '%3B'
         33        SEND_VAL_EX                                              ~25
         34        DO_FCALL                                      0          
   27    35        INIT_FCALL                                               'var_dump'
         36        SEND_VAR                                                 !4
         37        DO_ICALL                                                 
   29    38        FETCH_OBJ_R                                      ~28     !4, 'parentNode'
         39        INIT_METHOD_CALL                                         ~28, 'replaceChild'
         40        SEND_VAR_EX                                              !6
         41        SEND_VAR_EX                                              !4
         42        DO_FCALL                                      0          
   20    43    > > JMP                                                      ->16
         44    >   FE_FREE                                                  $18
   33    45        INIT_FCALL                                               'var_dump'
         46        INIT_METHOD_CALL                                         !1, 'saveHTML'
         47        DO_FCALL                                      0  $30     
         48        SEND_VAR                                                 $30
         49        DO_ICALL                                                 
         50      > RETURN                                                   1

Function getcolor:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 12
Branch analysis from position: 12
2 jumps found. (Code = 44) Position 1 = 14, Position 2 = 2
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 2
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 12
Branch analysis from position: 7
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 12
filename:       /in/OKBHo
function name:  getColor
number of ops:  15
compiled vars:  !0 = $domnode
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   RECV                                             !0      
    4     1      > JMP                                                      ->12
    5     2    >   FETCH_OBJ_R                                      ~1      !0, 'parentNode'
          3        INIT_METHOD_CALL                                         ~1, 'getAttribute'
          4        SEND_VAL_EX                                              'color'
          5        DO_FCALL                                      0  $2      
          6      > JMPZ                                                     $2, ->12
    6     7    >   FETCH_OBJ_R                                      ~3      !0, 'parentNode'
          8        INIT_METHOD_CALL                                         ~3, 'getAttribute'
          9        SEND_VAL_EX                                              'color'
         10        DO_FCALL                                      0  $4      
         11      > RETURN                                                   $4
    4    12    >   FETCH_OBJ_R                                      ~5      !0, 'parentNode'
         13      > JMPNZ                                                    ~5, ->2
    9    14    > > RETURN                                                   null

End of function getcolor

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
158.91 ms | 1407 KiB | 16 Q