3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = <<<DATA <PRODUCTS> <PRODUCT> <PRODUCT_NUMBER>7375-06</PRODUCT_NUMBER> <PRODUCT_NAME>Soft ball</PRODUCT_NAME> <ITEM_COLOR_NUMBER>04;05;10</ITEM_COLOR_NUMBER> </PRODUCT> </PRODUCTS> DATA; $xmlA = simplexml_load_string($data); // create empty output xml object $final = new simpleXMLElement('<?xml version="1.0" encoding="utf-8"?><PRODUCTINFORMATION></PRODUCTINFORMATION>'); $products = $final->addChild("PRODUCTS"); foreach ($xmlA->PRODUCT as $proda) { $prodbaseno = (string)$proda->PRODUCT_NUMBER; $prodname = (string)$proda->PRODUCT_NAME; $prodprintid = (string)$proda->ITEM_COLOR_NUMBER; // build the output xml $prodnew = $products->addChild('PRODUCT'); $prodnew->addChild('PRODUCT_NUMBER', $prodbaseno); $prodnew->addChild('PRODUCT_NAME', $prodname); foreach (explode(';', $prodprintid) as $item) { $prodnew->addChild('ITEM_COLOR_NUMBER', $item); } } echo $final->saveXml();
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 15, Position 2 = 50
Branch analysis from position: 15
2 jumps found. (Code = 78) Position 1 = 16, Position 2 = 50
Branch analysis from position: 16
2 jumps found. (Code = 77) Position 1 = 42, Position 2 = 48
Branch analysis from position: 42
2 jumps found. (Code = 78) Position 1 = 43, Position 2 = 48
Branch analysis from position: 43
1 jumps found. (Code = 42) Position 1 = 42
Branch analysis from position: 42
Branch analysis from position: 48
1 jumps found. (Code = 42) Position 1 = 15
Branch analysis from position: 15
Branch analysis from position: 48
Branch analysis from position: 50
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 50
filename:       /in/rZ93v
function name:  (null)
number of ops:  55
compiled vars:  !0 = $data, !1 = $xmlA, !2 = $final, !3 = $products, !4 = $proda, !5 = $prodbaseno, !6 = $prodname, !7 = $prodprintid, !8 = $prodnew, !9 = $item
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '%3CPRODUCTS%3E%0A++++%3CPRODUCT%3E%0A++++++++%3CPRODUCT_NUMBER%3E7375-06%3C%2FPRODUCT_NUMBER%3E%0A++++++++%3CPRODUCT_NAME%3ESoft+ball%3C%2FPRODUCT_NAME%3E%0A++++++++%3CITEM_COLOR_NUMBER%3E04%3B05%3B10%3C%2FITEM_COLOR_NUMBER%3E%0A++++%3C%2FPRODUCT%3E%0A%3C%2FPRODUCTS%3E'
   13     1        INIT_FCALL                                               'simplexml_load_string'
          2        SEND_VAR                                                 !0
          3        DO_ICALL                                         $11     
          4        ASSIGN                                                   !1, $11
   16     5        NEW                                              $13     'simpleXMLElement'
          6        SEND_VAL_EX                                              '%3C%3Fxml+version%3D%221.0%22+encoding%3D%22utf-8%22%3F%3E%3CPRODUCTINFORMATION%3E%3C%2FPRODUCTINFORMATION%3E'
          7        DO_FCALL                                      0          
          8        ASSIGN                                                   !2, $13
   17     9        INIT_METHOD_CALL                                         !2, 'addChild'
         10        SEND_VAL_EX                                              'PRODUCTS'
         11        DO_FCALL                                      0  $16     
         12        ASSIGN                                                   !3, $16
   19    13        FETCH_OBJ_R                                      ~18     !1, 'PRODUCT'
         14      > FE_RESET_R                                       $19     ~18, ->50
         15    > > FE_FETCH_R                                               $19, !4, ->50
   20    16    >   FETCH_OBJ_R                                      ~20     !4, 'PRODUCT_NUMBER'
         17        CAST                                          6  ~21     ~20
         18        ASSIGN                                                   !5, ~21
   21    19        FETCH_OBJ_R                                      ~23     !4, 'PRODUCT_NAME'
         20        CAST                                          6  ~24     ~23
         21        ASSIGN                                                   !6, ~24
   22    22        FETCH_OBJ_R                                      ~26     !4, 'ITEM_COLOR_NUMBER'
         23        CAST                                          6  ~27     ~26
         24        ASSIGN                                                   !7, ~27
   25    25        INIT_METHOD_CALL                                         !3, 'addChild'
         26        SEND_VAL_EX                                              'PRODUCT'
         27        DO_FCALL                                      0  $29     
         28        ASSIGN                                                   !8, $29
   26    29        INIT_METHOD_CALL                                         !8, 'addChild'
         30        SEND_VAL_EX                                              'PRODUCT_NUMBER'
         31        SEND_VAR_EX                                              !5
         32        DO_FCALL                                      0          
   27    33        INIT_METHOD_CALL                                         !8, 'addChild'
         34        SEND_VAL_EX                                              'PRODUCT_NAME'
         35        SEND_VAR_EX                                              !6
         36        DO_FCALL                                      0          
   28    37        INIT_FCALL                                               'explode'
         38        SEND_VAL                                                 '%3B'
         39        SEND_VAR                                                 !7
         40        DO_ICALL                                         $33     
         41      > FE_RESET_R                                       $34     $33, ->48
         42    > > FE_FETCH_R                                               $34, !9, ->48
   29    43    >   INIT_METHOD_CALL                                         !8, 'addChild'
         44        SEND_VAL_EX                                              'ITEM_COLOR_NUMBER'
         45        SEND_VAR_EX                                              !9
         46        DO_FCALL                                      0          
   28    47      > JMP                                                      ->42
         48    >   FE_FREE                                                  $34
   19    49      > JMP                                                      ->15
         50    >   FE_FREE                                                  $19
   33    51        INIT_METHOD_CALL                                         !2, 'saveXml'
         52        DO_FCALL                                      0  $36     
         53        ECHO                                                     $36
         54      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
162.99 ms | 1016 KiB | 15 Q