3v4l.org

run code in 300+ PHP versions simultaneously
<?php $data = [ ['Code' => 'DES001', 'Commennte' => '', 'Quantity' => 1, 'Price' => '135.00', 'Unity' => 1] ]; // expected <value><![CDATA...</value> payload $payload = [ 'Pedido' => [ 'Nombre' => '', 'Producto' => [ 'Product' => [ [ 'ClaveProducto' => $data[0]['Code'], 'Cantidad' => $data[0]['Quantity'], 'Precio' => $data[0]['Price'], 'Unidad' => 'PIEZA', 'Comentario' => '', ] ] ], ] ]; // 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/nUSm5
function name:  (null)
number of ops:  90
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>
    9     1        INIT_ARRAY                                       ~9      '', 'Nombre'
   13     2        FETCH_DIM_R                                      ~10     !0, 0
          3        FETCH_DIM_R                                      ~11     ~10, 'Code'
          4        INIT_ARRAY                                       ~12     ~11, 'ClaveProducto'
   14     5        FETCH_DIM_R                                      ~13     !0, 0
          6        FETCH_DIM_R                                      ~14     ~13, 'Quantity'
          7        ADD_ARRAY_ELEMENT                                ~12     ~14, 'Cantidad'
   15     8        FETCH_DIM_R                                      ~15     !0, 0
          9        FETCH_DIM_R                                      ~16     ~15, 'Price'
         10        ADD_ARRAY_ELEMENT                                ~12     ~16, 'Precio'
   16    11        ADD_ARRAY_ELEMENT                                ~12     'PIEZA', 'Unidad'
   17    12        ADD_ARRAY_ELEMENT                                ~12     '', 'Comentario'
         13        INIT_ARRAY                                       ~17     ~12
         14        INIT_ARRAY                                       ~18     ~17, 'Product'
         15        ADD_ARRAY_ELEMENT                                ~9      ~18, 'Producto'
         16        INIT_ARRAY                                       ~19     ~9, 'Pedido'
    7    17        ASSIGN                                                   !1, ~19
   25    18        NEW                                              $21     'DOMDocument'
         19        SEND_VAL_EX                                              '1.0'
         20        SEND_VAL_EX                                              'ISO-8859-15'
         21        DO_FCALL                                      0          
         22        ASSIGN                                                   !2, $21
   28    23        ASSIGN_OBJ                                               !2, 'preserveWhiteSpace'
         24        OP_DATA                                                  <false>
   29    25        ASSIGN_OBJ                                               !2, 'formatOutput'
         26        OP_DATA                                                  <true>
   32    27        INIT_METHOD_CALL                                         !2, 'createElement'
         28        SEND_VAL_EX                                              'request'
         29        DO_FCALL                                      0  $26     
         30        ASSIGN                                                   !3, $26
   35    31        INIT_METHOD_CALL                                         !2, 'createElement'
         32        SEND_VAL_EX                                              'method'
         33        DO_FCALL                                      0  $28     
         34        ASSIGN                                                   !4, $28
   36    35        INIT_METHOD_CALL                                         !4, 'appendChild'
         36        INIT_METHOD_CALL                                         !2, 'createCDATASection'
         37        SEND_VAL_EX                                              'registra'
         38        DO_FCALL                                      0  $30     
         39        SEND_VAR_NO_REF_EX                                       $30
         40        DO_FCALL                                      0          
   39    41        INIT_METHOD_CALL                                         !2, 'createElement'
         42        SEND_VAL_EX                                              'param'
         43        DO_FCALL                                      0  $32     
         44        ASSIGN                                                   !5, $32
   42    45        INIT_METHOD_CALL                                         !2, 'createElement'
         46        SEND_VAL_EX                                              'name'
         47        DO_FCALL                                      0  $34     
         48        ASSIGN                                                   !6, $34
   43    49        INIT_METHOD_CALL                                         !6, 'appendChild'
         50        INIT_METHOD_CALL                                         !2, 'createCDATASection'
         51        SEND_VAL_EX                                              'pedido'
         52        DO_FCALL                                      0  $36     
         53        SEND_VAR_NO_REF_EX                                       $36
         54        DO_FCALL                                      0          
   44    55        INIT_METHOD_CALL                                         !5, 'appendChild'
         56        SEND_VAR_EX                                              !6
         57        DO_FCALL                                      0          
   47    58        INIT_METHOD_CALL                                         !2, 'createElement'
         59        SEND_VAL_EX                                              'value'
         60        DO_FCALL                                      0  $39     
         61        ASSIGN                                                   !7, $39
   48    62        INIT_METHOD_CALL                                         !7, 'appendChild'
         63        INIT_METHOD_CALL                                         !2, 'createCDATASection'
         64        INIT_FCALL                                               'json_encode'
         65        SEND_VAR                                                 !1
         66        DO_ICALL                                         $41     
         67        SEND_VAR_NO_REF_EX                                       $41
         68        DO_FCALL                                      0  $42     
         69        SEND_VAR_NO_REF_EX                                       $42
         70        DO_FCALL                                      0          
   49    71        INIT_METHOD_CALL                                         !5, 'appendChild'
         72        SEND_VAR_EX                                              !7
         73        DO_FCALL                                      0          
   52    74        INIT_METHOD_CALL                                         !3, 'appendChild'
         75        SEND_VAR_EX                                              !4
         76        DO_FCALL                                      0          
   55    77        INIT_METHOD_CALL                                         !3, 'appendChild'
         78        SEND_VAR_EX                                              !5
         79        DO_FCALL                                      0          
   58    80        INIT_METHOD_CALL                                         !2, 'appendChild'
         81        SEND_VAR_EX                                              !3
         82        DO_FCALL                                      0          
   61    83        INIT_METHOD_CALL                                         !2, 'saveXML'
         84        CHECK_FUNC_ARG                                           
         85        FETCH_OBJ_FUNC_ARG                               $48     !2, 'documentElement'
         86        SEND_FUNC_ARG                                            $48
         87        DO_FCALL                                      0  $49     
         88        ECHO                                                     $49
         89      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
152.02 ms | 1400 KiB | 15 Q