3v4l.org

run code in 500+ 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:  33
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        FRAMELESS_ICALL_3                preg_replace        ~7      '%2F%28%3C%5C%2F%3F%29%28%5Cw%2B%29%3A%28%5B%5E%3E%5D%2A%3E%29%2F', '%241%242%243'
          2        OP_DATA                                                      !0
          3        ASSIGN                                                       !1, ~7
   25     4        NEW                                                  $9      'SimpleXMLElement'
          5        SEND_VAR_EX                                                  !1
          6        DO_FCALL                                          0          
          7        ASSIGN                                                       !2, $9
   26     8        INIT_METHOD_CALL                                             !2, 'xpath'
          9        SEND_VAL_EX                                                  '%2F%2FsoapenvBody'
         10        DO_FCALL                                          0  $12     
         11        FETCH_DIM_R                                          ~13     $12, 0
         12        ASSIGN                                                       !3, ~13
   27    13        INIT_FCALL                                                   'json_decode'
         14        INIT_FCALL                                                   'json_encode'
         15        CAST                                              7  ~15     !3
         16        SEND_VAL                                                     ~15
         17        DO_ICALL                                             $16     
         18        SEND_VAR                                                     $16
         19        SEND_VAL                                                     <true>
         20        DO_ICALL                                             $17     
         21        ASSIGN                                                       !4, $17
   28    22        FETCH_DIM_R                                          ~19     !4, 'HostCustomerResponse'
         23        FETCH_DIM_R                                          ~20     ~19, 'ns1output'
         24        FETCH_DIM_R                                          ~21     ~20, 'ns2txnData'
         25        FETCH_DIM_R                                          ~22     ~21, 'transferRequest'
         26        FETCH_DIM_R                                          ~23     ~22, 'transfer'
         27        ASSIGN                                                       !5, ~23
   30    28        ECHO                                                         '%3Cpre%3E'
   31    29        INIT_FCALL                                                   'print_r'
         30        SEND_VAR                                                     !5
         31        DO_ICALL                                                     
         32      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
165.35 ms | 2154 KiB | 16 Q