3v4l.org

run code in 300+ PHP versions simultaneously
<?php $xml = '<products><product><features><feature>Dimensions:300x1220x12:8</feature><feature>Weight:25kg:853</feature></features></product></products>'; $doc = new DOMDocument('1.0', 'UTF-8'); $doc->loadXML($xml); foreach($doc->getElementsByTagName('feature') as $featureNode) { $values = explode(':', $featureNode->textContent); $newNode = $doc->createElement($values[0]); $newNode->appendChild($doc->createTextNode($values[1])); $featureNode->removeChild($featureNode->firstChild); $featureNode->appendChild($newNode); } $doc->formatOutput = true; echo $doc->saveXML();
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 13, Position 2 = 43
Branch analysis from position: 13
2 jumps found. (Code = 78) Position 1 = 14, Position 2 = 43
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 13
Branch analysis from position: 13
Branch analysis from position: 43
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 43
filename:       /in/q5lm9
function name:  (null)
number of ops:  50
compiled vars:  !0 = $xml, !1 = $doc, !2 = $featureNode, !3 = $values, !4 = $newNode
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, '%3Cproducts%3E%3Cproduct%3E%3Cfeatures%3E%3Cfeature%3EDimensions%3A300x1220x12%3A8%3C%2Ffeature%3E%3Cfeature%3EWeight%3A25kg%3A853%3C%2Ffeature%3E%3C%2Ffeatures%3E%3C%2Fproduct%3E%3C%2Fproducts%3E'
    3     1        NEW                                              $6      'DOMDocument'
          2        SEND_VAL_EX                                              '1.0'
          3        SEND_VAL_EX                                              'UTF-8'
          4        DO_FCALL                                      0          
          5        ASSIGN                                                   !1, $6
    4     6        INIT_METHOD_CALL                                         !1, 'loadXML'
          7        SEND_VAR_EX                                              !0
          8        DO_FCALL                                      0          
    5     9        INIT_METHOD_CALL                                         !1, 'getElementsByTagName'
         10        SEND_VAL_EX                                              'feature'
         11        DO_FCALL                                      0  $10     
         12      > FE_RESET_R                                       $11     $10, ->43
         13    > > FE_FETCH_R                                               $11, !2, ->43
    6    14    >   INIT_FCALL                                               'explode'
         15        SEND_VAL                                                 '%3A'
         16        FETCH_OBJ_R                                      ~12     !2, 'textContent'
         17        SEND_VAL                                                 ~12
         18        DO_ICALL                                         $13     
         19        ASSIGN                                                   !3, $13
    7    20        INIT_METHOD_CALL                                         !1, 'createElement'
         21        CHECK_FUNC_ARG                                           
         22        FETCH_DIM_FUNC_ARG                               $15     !3, 0
         23        SEND_FUNC_ARG                                            $15
         24        DO_FCALL                                      0  $16     
         25        ASSIGN                                                   !4, $16
    8    26        INIT_METHOD_CALL                                         !4, 'appendChild'
         27        INIT_METHOD_CALL                                         !1, 'createTextNode'
         28        CHECK_FUNC_ARG                                           
         29        FETCH_DIM_FUNC_ARG                               $18     !3, 1
         30        SEND_FUNC_ARG                                            $18
         31        DO_FCALL                                      0  $19     
         32        SEND_VAR_NO_REF_EX                                       $19
         33        DO_FCALL                                      0          
    9    34        INIT_METHOD_CALL                                         !2, 'removeChild'
         35        CHECK_FUNC_ARG                                           
         36        FETCH_OBJ_FUNC_ARG                               $21     !2, 'firstChild'
         37        SEND_FUNC_ARG                                            $21
         38        DO_FCALL                                      0          
   10    39        INIT_METHOD_CALL                                         !2, 'appendChild'
         40        SEND_VAR_EX                                              !4
         41        DO_FCALL                                      0          
    5    42      > JMP                                                      ->13
         43    >   FE_FREE                                                  $11
   12    44        ASSIGN_OBJ                                               !1, 'formatOutput'
         45        OP_DATA                                                  <true>
   13    46        INIT_METHOD_CALL                                         !1, 'saveXML'
         47        DO_FCALL                                      0  $25     
         48        ECHO                                                     $25
         49      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
171.55 ms | 1400 KiB | 15 Q