3v4l.org

run code in 300+ PHP versions simultaneously
<?php $xml = '<?xml version="1.0" encoding="UTF-8"?> <cfdi:Comprobante Version="3.3" Total="45264.13"> <cfdi:Emisor Rfc="ABC123456AB1" Nombre="JOHN DOE"/> <cfdi:Conceptos> <cfdi:Concepto ValorUnitario="93.80"> </cfdi:Concepto> </cfdi:Conceptos> <cfdi:Complemento> <tfd:Digital Version="1.1" Sello="BXTJPwDh+" NoCertificado="0000100" FechaTimbrado="2019-07-18" UID="C58C" xmlns:tfd="http://www.stackoverflow.com"/> </cfdi:Complemento> </cfdi:Comprobante>'; $cleanXml = str_ireplace(['cfdi:', 'tfd:'], '', $xml); // strip namespace prefixes from xml $xml = simplexml_load_string($cleanXml); $arr = json_decode(json_encode($xml), true); // xml to associative array $total = (float)$arr['@attributes']['Total']; $rfc = (string)$arr['Emisor']['@attributes']['Rfc']; $uid = (string)$arr['Complemento']['Digital']['@attributes']['UID']; echo 'total : ' . $total; echo PHP_EOL; echo 'rfc : ' . $rfc; echo PHP_EOL; echo 'UID : ' . $uid; echo PHP_EOL;
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/YPDqE
function name:  (null)
number of ops:  44
compiled vars:  !0 = $xml, !1 = $cleanXml, !2 = $arr, !3 = $total, !4 = $rfc, !5 = $uid
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, '%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%0A%3Ccfdi%3AComprobante+Version%3D%223.3%22+Total%3D%2245264.13%22%3E%0A++++%3Ccfdi%3AEmisor+Rfc%3D%22ABC123456AB1%22+Nombre%3D%22JOHN+DOE%22%2F%3E%0A++++%3Ccfdi%3AConceptos%3E%0A++++++++%3Ccfdi%3AConcepto+ValorUnitario%3D%2293.80%22%3E%0A++++++++%3C%2Fcfdi%3AConcepto%3E%0A++++%3C%2Fcfdi%3AConceptos%3E%0A++++%3Ccfdi%3AComplemento%3E%0A++++++++%3Ctfd%3ADigital+Version%3D%221.1%22+Sello%3D%22BXTJPwDh%2B%22+NoCertificado%3D%220000100%22%0A+++++++++++++++++++++FechaTimbrado%3D%222019-07-18%22+UID%3D%22C58C%22%0A+++++++++++++++++++++xmlns%3Atfd%3D%22http%3A%2F%2Fwww.stackoverflow.com%22%2F%3E%0A++++%3C%2Fcfdi%3AComplemento%3E%0A%3C%2Fcfdi%3AComprobante%3E'
   15     1        INIT_FCALL                                               'str_ireplace'
          2        SEND_VAL                                                 <array>
          3        SEND_VAL                                                 ''
          4        SEND_VAR                                                 !0
          5        DO_ICALL                                         $7      
          6        ASSIGN                                                   !1, $7
   16     7        INIT_FCALL                                               'simplexml_load_string'
          8        SEND_VAR                                                 !1
          9        DO_ICALL                                         $9      
         10        ASSIGN                                                   !0, $9
   17    11        INIT_FCALL                                               'json_decode'
         12        INIT_FCALL                                               'json_encode'
         13        SEND_VAR                                                 !0
         14        DO_ICALL                                         $11     
         15        SEND_VAR                                                 $11
         16        SEND_VAL                                                 <true>
         17        DO_ICALL                                         $12     
         18        ASSIGN                                                   !2, $12
   19    19        FETCH_DIM_R                                      ~14     !2, '%40attributes'
         20        FETCH_DIM_R                                      ~15     ~14, 'Total'
         21        CAST                                          5  ~16     ~15
         22        ASSIGN                                                   !3, ~16
   20    23        FETCH_DIM_R                                      ~18     !2, 'Emisor'
         24        FETCH_DIM_R                                      ~19     ~18, '%40attributes'
         25        FETCH_DIM_R                                      ~20     ~19, 'Rfc'
         26        CAST                                          6  ~21     ~20
         27        ASSIGN                                                   !4, ~21
   21    28        FETCH_DIM_R                                      ~23     !2, 'Complemento'
         29        FETCH_DIM_R                                      ~24     ~23, 'Digital'
         30        FETCH_DIM_R                                      ~25     ~24, '%40attributes'
         31        FETCH_DIM_R                                      ~26     ~25, 'UID'
         32        CAST                                          6  ~27     ~26
         33        ASSIGN                                                   !5, ~27
   23    34        CONCAT                                           ~29     'total+%3A+', !3
         35        ECHO                                                     ~29
   24    36        ECHO                                                     '%0A'
   25    37        CONCAT                                           ~30     'rfc+%3A+', !4
         38        ECHO                                                     ~30
   26    39        ECHO                                                     '%0A'
   27    40        CONCAT                                           ~31     'UID+%3A+', !5
         41        ECHO                                                     ~31
   28    42        ECHO                                                     '%0A'
   29    43      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
145.22 ms | 1010 KiB | 17 Q