3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = [ ['Code' => 'DES001', 'Commennte' => '', 'Quantity' => 1, 'Price' => '145.00', 'Unity' => 1], ['Code' => 'DES002', 'Commennte' => '', 'Quantity' => 5, 'Price' => '133.00', 'Unity' => 1], ['Code' => 'DES003', 'Commennte' => '', 'Quantity' => 9, 'Price' => '125.00', 'Unity' => 1], ]; // expected <value><![CDATA...</value> payload $payload = [ 'Pedido' => [ 'Nombre' => '', 'Producto' => [ 'Product' => array_map(function($v) { return [ 'ClaveProducto' => $v['Code'], 'Cantidad' => $v['Quantity'], 'Precio' => $v['Price'], 'Unidad' => 'PIEZA', 'Comentario' => '', ]; }, $data) ], ] ]; // init domdocument $xml = new DOMDocument("1.0", "ISO-8859-15"); // optional $xml->preserveWhiteSpace = false; $xml->formatOutput = true; // create request wrapper $request = $xml->createElement("request"); // create method (CDATA), append it to the wrapper $method = $xml->createElement("method"); $method->appendChild($xml->createCDATASection('registra')); // create param wrapper $param = $xml->createElement("param"); // create name (CDATA), append it to the param $name = $xml->createElement("name"); $name->appendChild($xml->createCDATASection('pedido')); $param->appendChild($name); // create value (CDATA), append it to the param $value = $xml->createElement("value"); $value->appendChild($xml->createCDATASection(json_encode($payload))); $param->appendChild($value); // append method to request $request->appendChild($method); // append param to request $request->appendChild($param); // request root $xml->appendChild($request); // output echo $xml->saveXML($xml->documentElement);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/FgrhN
function name:  (null)
number of ops:  83
compiled vars:  !0 = $data, !1 = $payload, !2 = $xml, !3 = $request, !4 = $method, !5 = $param, !6 = $name, !7 = $value
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, <array>
   11     1        INIT_ARRAY                                       ~9      '', 'Nombre'
   13     2        INIT_FCALL                                               'array_map'
          3        DECLARE_LAMBDA_FUNCTION                                  '%00%7Bclosure%7D%2Fin%2FFgrhN%3A13%240'
   21     4        SEND_VAL                                                 ~10
          5        SEND_VAR                                                 !0
          6        DO_ICALL                                         $11     
          7        INIT_ARRAY                                       ~12     $11, 'Product'
          8        ADD_ARRAY_ELEMENT                                ~9      ~12, 'Producto'
          9        INIT_ARRAY                                       ~13     ~9, 'Pedido'
    9    10        ASSIGN                                                   !1, ~13
   27    11        NEW                                              $15     'DOMDocument'
         12        SEND_VAL_EX                                              '1.0'
         13        SEND_VAL_EX                                              'ISO-8859-15'
         14        DO_FCALL                                      0          
         15        ASSIGN                                                   !2, $15
   30    16        ASSIGN_OBJ                                               !2, 'preserveWhiteSpace'
         17        OP_DATA                                                  <false>
   31    18        ASSIGN_OBJ                                               !2, 'formatOutput'
         19        OP_DATA                                                  <true>
   34    20        INIT_METHOD_CALL                                         !2, 'createElement'
         21        SEND_VAL_EX                                              'request'
         22        DO_FCALL                                      0  $20     
         23        ASSIGN                                                   !3, $20
   37    24        INIT_METHOD_CALL                                         !2, 'createElement'
         25        SEND_VAL_EX                                              'method'
         26        DO_FCALL                                      0  $22     
         27        ASSIGN                                                   !4, $22
   38    28        INIT_METHOD_CALL                                         !4, 'appendChild'
         29        INIT_METHOD_CALL                                         !2, 'createCDATASection'
         30        SEND_VAL_EX                                              'registra'
         31        DO_FCALL                                      0  $24     
         32        SEND_VAR_NO_REF_EX                                       $24
         33        DO_FCALL                                      0          
   41    34        INIT_METHOD_CALL                                         !2, 'createElement'
         35        SEND_VAL_EX                                              'param'
         36        DO_FCALL                                      0  $26     
         37        ASSIGN                                                   !5, $26
   44    38        INIT_METHOD_CALL                                         !2, 'createElement'
         39        SEND_VAL_EX                                              'name'
         40        DO_FCALL                                      0  $28     
         41        ASSIGN                                                   !6, $28
   45    42        INIT_METHOD_CALL                                         !6, 'appendChild'
         43        INIT_METHOD_CALL                                         !2, 'createCDATASection'
         44        SEND_VAL_EX                                              'pedido'
         45        DO_FCALL                                      0  $30     
         46        SEND_VAR_NO_REF_EX                                       $30
         47        DO_FCALL                                      0          
   46    48        INIT_METHOD_CALL                                         !5, 'appendChild'
         49        SEND_VAR_EX                                              !6
         50        DO_FCALL                                      0          
   49    51        INIT_METHOD_CALL                                         !2, 'createElement'
         52        SEND_VAL_EX                                              'value'
         53        DO_FCALL                                      0  $33     
         54        ASSIGN                                                   !7, $33
   50    55        INIT_METHOD_CALL                                         !7, 'appendChild'
         56        INIT_METHOD_CALL                                         !2, 'createCDATASection'
         57        INIT_FCALL                                               'json_encode'
         58        SEND_VAR                                                 !1
         59        DO_ICALL                                         $35     
         60        SEND_VAR_NO_REF_EX                                       $35
         61        DO_FCALL                                      0  $36     
         62        SEND_VAR_NO_REF_EX                                       $36
         63        DO_FCALL                                      0          
   51    64        INIT_METHOD_CALL                                         !5, 'appendChild'
         65        SEND_VAR_EX                                              !7
         66        DO_FCALL                                      0          
   54    67        INIT_METHOD_CALL                                         !3, 'appendChild'
         68        SEND_VAR_EX                                              !4
         69        DO_FCALL                                      0          
   57    70        INIT_METHOD_CALL                                         !3, 'appendChild'
         71        SEND_VAR_EX                                              !5
         72        DO_FCALL                                      0          
   60    73        INIT_METHOD_CALL                                         !2, 'appendChild'
         74        SEND_VAR_EX                                              !3
         75        DO_FCALL                                      0          
   63    76        INIT_METHOD_CALL                                         !2, 'saveXML'
         77        CHECK_FUNC_ARG                                           
         78        FETCH_OBJ_FUNC_ARG                               $42     !2, 'documentElement'
         79        SEND_FUNC_ARG                                            $42
         80        DO_FCALL                                      0  $43     
         81        ECHO                                                     $43
         82      > RETURN                                                   1

Function %00%7Bclosure%7D%2Fin%2FFgrhN%3A13%240:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/FgrhN
function name:  {closure}
number of ops:  11
compiled vars:  !0 = $v
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   13     0  E >   RECV                                             !0      
   15     1        FETCH_DIM_R                                      ~1      !0, 'Code'
          2        INIT_ARRAY                                       ~2      ~1, 'ClaveProducto'
   16     3        FETCH_DIM_R                                      ~3      !0, 'Quantity'
          4        ADD_ARRAY_ELEMENT                                ~2      ~3, 'Cantidad'
   17     5        FETCH_DIM_R                                      ~4      !0, 'Price'
          6        ADD_ARRAY_ELEMENT                                ~2      ~4, 'Precio'
   18     7        ADD_ARRAY_ELEMENT                                ~2      'PIEZA', 'Unidad'
   19     8        ADD_ARRAY_ELEMENT                                ~2      '', 'Comentario'
          9      > RETURN                                                   ~2
   21    10*     > RETURN                                                   null

End of function %00%7Bclosure%7D%2Fin%2FFgrhN%3A13%240

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
144.35 ms | 1404 KiB | 17 Q