3v4l.org

run code in 300+ PHP versions simultaneously
<?php $soapXMLResult = '<soapenv:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <HostCustomerResponse xmlns="http://xx.xx.xx.xx"> <ns1:output xmlns:ns1="http://xx.xx.xx" xmlns:ns2="some:url" xsi:type="ns2:Output"> <ns2:statusCode>00</ns2:statusCode> <ns2:statusMsg/> <ns2:txnResponseDateTime>20190625164236</ns2:txnResponseDateTime> <ns2:txnData> <transferRequest> <transfer> <transferId>123456789</transferId> <txnDate>123456789</txnDate> <debitAcctNo>123456789</debitAcctNo> <benAcctNo>123456789</benAcctNo> </transfer> </transferRequest> </ns2:txnData> </ns1:output> </HostCustomerResponse> </soapenv:Body> </soapenv:Envelope>'; $response = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $soapXMLResult); $xml = new SimpleXMLElement($response); $body = $xml->xpath('//soapenvBody')[0]; $array = json_decode(json_encode((array)$body), TRUE); $transfer = $array['HostCustomerResponse']['ns1output']['ns2txnData']['transferRequest']['transfer']; echo '<pre>'; print_r($transfer);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/UKnZs
function name:  (null)
number of ops:  36
compiled vars:  !0 = $soapXMLResult, !1 = $response, !2 = $xml, !3 = $body, !4 = $array, !5 = $transfer
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, '%3Csoapenv%3AEnvelope+xmlns%3Axsd%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema%22+xmlns%3Axsi%3D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchema-instance%22%3E%0A++%3Csoapenv%3ABody%3E%0A++++%3CHostCustomerResponse+xmlns%3D%22http%3A%2F%2Fxx.xx.xx.xx%22%3E%0A++++++%3Cns1%3Aoutput+xmlns%3Ans1%3D%22http%3A%2F%2Fxx.xx.xx%22+xmlns%3Ans2%3D%22some%3Aurl%22+xsi%3Atype%3D%22ns2%3AOutput%22%3E%0A+++++++%3Cns2%3AstatusCode%3E00%3C%2Fns2%3AstatusCode%3E%0A+++++++%3Cns2%3AstatusMsg%2F%3E%0A+++++++%3Cns2%3AtxnResponseDateTime%3E20190625164236%3C%2Fns2%3AtxnResponseDateTime%3E%0A+++++++%3Cns2%3AtxnData%3E%0A+++++++++%3CtransferRequest%3E%0A+++++++++++%3Ctransfer%3E%0A+++++++++++++%3CtransferId%3E123456789%3C%2FtransferId%3E%0A+++++++++++++%3CtxnDate%3E123456789%3C%2FtxnDate%3E%0A+++++++++++++%3CdebitAcctNo%3E123456789%3C%2FdebitAcctNo%3E%0A+++++++++++++%3CbenAcctNo%3E123456789%3C%2FbenAcctNo%3E%0A++++++++++%3C%2Ftransfer%3E%0A++++++++%3C%2FtransferRequest%3E%0A++++++%3C%2Fns2%3AtxnData%3E%0A++++%3C%2Fns1%3Aoutput%3E%0A+++%3C%2FHostCustomerResponse%3E%0A++%3C%2Fsoapenv%3ABody%3E%0A%3C%2Fsoapenv%3AEnvelope%3E'
   24     1        INIT_FCALL                                               'preg_replace'
          2        SEND_VAL                                                 '%2F%28%3C%5C%2F%3F%29%28%5Cw%2B%29%3A%28%5B%5E%3E%5D%2A%3E%29%2F'
          3        SEND_VAL                                                 '%241%242%243'
          4        SEND_VAR                                                 !0
          5        DO_ICALL                                         $7      
          6        ASSIGN                                                   !1, $7
   25     7        NEW                                              $9      'SimpleXMLElement'
          8        SEND_VAR_EX                                              !1
          9        DO_FCALL                                      0          
         10        ASSIGN                                                   !2, $9
   26    11        INIT_METHOD_CALL                                         !2, 'xpath'
         12        SEND_VAL_EX                                              '%2F%2FsoapenvBody'
         13        DO_FCALL                                      0  $12     
         14        FETCH_DIM_R                                      ~13     $12, 0
         15        ASSIGN                                                   !3, ~13
   27    16        INIT_FCALL                                               'json_decode'
         17        INIT_FCALL                                               'json_encode'
         18        CAST                                          7  ~15     !3
         19        SEND_VAL                                                 ~15
         20        DO_ICALL                                         $16     
         21        SEND_VAR                                                 $16
         22        SEND_VAL                                                 <true>
         23        DO_ICALL                                         $17     
         24        ASSIGN                                                   !4, $17
   28    25        FETCH_DIM_R                                      ~19     !4, 'HostCustomerResponse'
         26        FETCH_DIM_R                                      ~20     ~19, 'ns1output'
         27        FETCH_DIM_R                                      ~21     ~20, 'ns2txnData'
         28        FETCH_DIM_R                                      ~22     ~21, 'transferRequest'
         29        FETCH_DIM_R                                      ~23     ~22, 'transfer'
         30        ASSIGN                                                   !5, ~23
   30    31        ECHO                                                     '%3Cpre%3E'
   31    32        INIT_FCALL                                               'print_r'
         33        SEND_VAR                                                 !5
         34        DO_ICALL                                                 
         35      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
152.93 ms | 1010 KiB | 17 Q