3v4l.org

run code in 500+ PHP versions simultaneously
<?php $xml = '<?xml version="1.0" encoding="UTF-8"?> <project name="Esurance 365 Portal"> <elements> <element name="folderone" path="forms/folderone"> <folder function="model">models</folder> <folder function="controller">controllers</folder> <folder function="view">views</folder> </element> </elements> </project>'; $dom = new DOMDocument(); $dom->preserveWhiteSpace = false; $dom->formatOutput = true; $dom->loadXml($xml); $element = $dom->getElementsByTagName("element")->item(0); $clone = $element->cloneNode(true); $clone->setAttribute("name", "foldertwo"); $clone->setAttribute("path", "forms/foldertwo"); $folder = $clone->getElementsByTagName("folder"); $folder->item(0)->nodeValue = "modelstwo"; $folder->item(1)->nodeValue = "controllerstwo"; $folder->item(2)->nodeValue = "viewstwo"; $element->parentNode->insertBefore($clone, $element); $xml = $dom->saveXml(); print_r($xml);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/TlQso
function name:  (null)
number of ops:  64
compiled vars:  !0 = $xml, !1 = $dom, !2 = $element, !3 = $clone, !4 = $folder
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, '%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%0A%3Cproject+name%3D%22Esurance+365+Portal%22%3E%0A++++%3Celements%3E%0A++++++++%3Celement+name%3D%22folderone%22+path%3D%22forms%2Ffolderone%22%3E%0A++++++++++++%3Cfolder+function%3D%22model%22%3Emodels%3C%2Ffolder%3E%0A++++++++++++%3Cfolder+function%3D%22controller%22%3Econtrollers%3C%2Ffolder%3E%0A++++++++++++%3Cfolder+function%3D%22view%22%3Eviews%3C%2Ffolder%3E%0A++++++++%3C%2Felement%3E%0A++++%3C%2Felements%3E%0A%3C%2Fproject%3E'
   14     1        NEW                                                  $6      'DOMDocument'
          2        DO_FCALL                                          0          
          3        ASSIGN                                                       !1, $6
   15     4        ASSIGN_OBJ                                                   !1, 'preserveWhiteSpace'
          5        OP_DATA                                                      <false>
   16     6        ASSIGN_OBJ                                                   !1, 'formatOutput'
          7        OP_DATA                                                      <true>
   17     8        INIT_METHOD_CALL                                             !1, 'loadXml'
          9        SEND_VAR_EX                                                  !0
         10        DO_FCALL                                          0          
   18    11        INIT_METHOD_CALL                                             !1, 'getElementsByTagName'
         12        SEND_VAL_EX                                                  'element'
         13        DO_FCALL                                          0  $12     
         14        INIT_METHOD_CALL                                             $12, 'item'
         15        SEND_VAL_EX                                                  0
         16        DO_FCALL                                          0  $13     
         17        ASSIGN                                                       !2, $13
   19    18        INIT_METHOD_CALL                                             !2, 'cloneNode'
         19        SEND_VAL_EX                                                  <true>
         20        DO_FCALL                                          0  $15     
         21        ASSIGN                                                       !3, $15
   20    22        INIT_METHOD_CALL                                             !3, 'setAttribute'
         23        SEND_VAL_EX                                                  'name'
         24        SEND_VAL_EX                                                  'foldertwo'
         25        DO_FCALL                                          0          
   21    26        INIT_METHOD_CALL                                             !3, 'setAttribute'
         27        SEND_VAL_EX                                                  'path'
         28        SEND_VAL_EX                                                  'forms%2Ffoldertwo'
         29        DO_FCALL                                          0          
   22    30        INIT_METHOD_CALL                                             !3, 'getElementsByTagName'
         31        SEND_VAL_EX                                                  'folder'
         32        DO_FCALL                                          0  $19     
         33        ASSIGN                                                       !4, $19
   23    34        INIT_METHOD_CALL                                             !4, 'item'
         35        SEND_VAL_EX                                                  0
         36        DO_FCALL                                          0  $21     
         37        SEPARATE                                             $21     $21
         38        ASSIGN_OBJ                                                   $21, 'nodeValue'
         39        OP_DATA                                                      'modelstwo'
   24    40        INIT_METHOD_CALL                                             !4, 'item'
         41        SEND_VAL_EX                                                  1
         42        DO_FCALL                                          0  $23     
         43        SEPARATE                                             $23     $23
         44        ASSIGN_OBJ                                                   $23, 'nodeValue'
         45        OP_DATA                                                      'controllerstwo'
   25    46        INIT_METHOD_CALL                                             !4, 'item'
         47        SEND_VAL_EX                                                  2
         48        DO_FCALL                                          0  $25     
         49        SEPARATE                                             $25     $25
         50        ASSIGN_OBJ                                                   $25, 'nodeValue'
         51        OP_DATA                                                      'viewstwo'
   26    52        FETCH_OBJ_R                                          ~27     !2, 'parentNode'
         53        INIT_METHOD_CALL                                             ~27, 'insertBefore'
         54        SEND_VAR_EX                                                  !3
         55        SEND_VAR_EX                                                  !2
         56        DO_FCALL                                          0          
   27    57        INIT_METHOD_CALL                                             !1, 'saveXml'
         58        DO_FCALL                                          0  $29     
         59        ASSIGN                                                       !0, $29
   28    60        INIT_FCALL                                                   'print_r'
         61        SEND_VAR                                                     !0
         62        DO_ICALL                                                     
         63      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
162.16 ms | 2793 KiB | 14 Q