3v4l.org

run code in 300+ PHP versions simultaneously
<?php $xml = <<<EOT <trackingresponse> <trackingdetails> <trackingdetail> <trackingnumber>4569788591</trackingnumber> <parcelnumber>15504569788591</parcelnumber> <consignmentnumber>4569788591</consignmentnumber> <deliveryaddress1></deliveryaddress1> <deliveryaddress2>Bramble Wood</deliveryaddress2> <deliverylocality>1Street</deliverylocality> <deliverycity></deliverycity> <deliverypostcode></deliverypostcode> <deliverycountrycode>GB</deliverycountrycode> <etastart>1970-01-01T12:31:00+01:00</etastart> <etaend>1970-01-01T13:31:00+01:00</etaend> <parcelcode>15504569788591*19990</parcelcode> <trackingevents> <trackingevent> <date>2022-09-24T08:32:00+01:00</date> <code>15</code> <type>OUT FOR DELIVERY</type> <description>On vehicle for delivery between 12:31 - 13:31 Out For Delivery SMS notification sent</description> <locality>Peterborough</locality> <countrycode>GB</countrycode> <etastart>12:31</etastart> <etaend>13:31</etaend> <imagekey></imagekey> </trackingevent> <trackingevent> <date>2022-09-24T00:36:00+01:00</date> <code>4</code> <type>CONFIRMED AT DEPOT</type> <description>Confirmed at depot</description> <locality>Peterborough</locality> <countrycode>GB</countrycode> <imagekey></imagekey> </trackingevent> <trackingevent> <date>2022-09-24T00:17:00+01:00</date> <code>4</code> <type>CONFIRMED AT DEPOT</type> <description>Confirmed at depot</description> <locality>Peterborough</locality> <countrycode>GB</countrycode> <imagekey></imagekey> </trackingevent> <trackingevent> <date>2022-09-23T20:01:00+01:00</date> <code>9</code> <type>HUB SCAN</type> <description>Confirmed at Hub</description> <locality>Hub 3 - Bham</locality> <countrycode>GB</countrycode> <imagekey></imagekey> </trackingevent> <trackingevent> <date>2022-09-23T18:34:00+01:00</date> <code>0</code> <type>PARCEL DATA</type> <description>Customer data received</description> <locality>Birmingham</locality> <countrycode>GB</countrycode> <imagekey></imagekey> </trackingevent> </trackingevents> </trackingdetail> </trackingdetails> </trackingresponse> EOT; $obj = simplexml_load_string($xml); // if you actually think you will get multiple foreach($obj->trackingdetails->trackingdetail as $trackingDetail){ echo $trackingDetail->trackingnumber; } echo PHP_EOL; // if you know you'll always have just one echo $obj->trackingdetails->trackingdetail->trackingnumber;
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 8, Position 2 = 12
Branch analysis from position: 8
2 jumps found. (Code = 78) Position 1 = 9, Position 2 = 12
Branch analysis from position: 9
1 jumps found. (Code = 42) Position 1 = 8
Branch analysis from position: 8
Branch analysis from position: 12
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 12
filename:       /in/THok5
function name:  (null)
number of ops:  19
compiled vars:  !0 = $xml, !1 = $obj, !2 = $trackingDetail
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '%3Ctrackingresponse%3E%0A++++%3Ctrackingdetails%3E%0A++++++++%3Ctrackingdetail%3E%0A++++++++++++%3Ctrackingnumber%3E4569788591%3C%2Ftrackingnumber%3E%0A++++++++++++%3Cparcelnumber%3E15504569788591%3C%2Fparcelnumber%3E%0A++++++++++++%3Cconsignmentnumber%3E4569788591%3C%2Fconsignmentnumber%3E%0A++++++++++++%3Cdeliveryaddress1%3E%3C%2Fdeliveryaddress1%3E%0A++++++++++++%3Cdeliveryaddress2%3EBramble+Wood%3C%2Fdeliveryaddress2%3E%0A++++++++++++%3Cdeliverylocality%3E1Street%3C%2Fdeliverylocality%3E%0A++++++++++++%3Cdeliverycity%3E%3C%2Fdeliverycity%3E%0A++++++++++++%3Cdeliverypostcode%3E%3C%2Fdeliverypostcode%3E%0A++++++++++++%3Cdeliverycountrycode%3EGB%3C%2Fdeliverycountrycode%3E%0A++++++++++++%3Cetastart%3E1970-01-01T12%3A31%3A00%2B01%3A00%3C%2Fetastart%3E%0A++++++++++++%3Cetaend%3E1970-01-01T13%3A31%3A00%2B01%3A00%3C%2Fetaend%3E%0A++++++++++++%3Cparcelcode%3E15504569788591%2A19990%3C%2Fparcelcode%3E%0A++++++++++++%3Ctrackingevents%3E%0A++++++++++++++++%3Ctrackingevent%3E%0A++++++++++++++++++++%3Cdate%3E2022-09-24T08%3A32%3A00%2B01%3A00%3C%2Fdate%3E%0A++++++++++++++++++++%3Ccode%3E15%3C%2Fcode%3E%0A++++++++++++++++++++%3Ctype%3EOUT+FOR+DELIVERY%3C%2Ftype%3E%0A++++++++++++++++++++%3Cdescription%3EOn+vehicle+for+delivery+between+12%3A31+-+13%3A31+Out+For+Delivery+SMS+notification+sent%3C%2Fdescription%3E%0A++++++++++++++++++++%3Clocality%3EPeterborough%3C%2Flocality%3E%0A++++++++++++++++++++%3Ccountrycode%3EGB%3C%2Fcountrycode%3E%0A++++++++++++++++++++%3Cetastart%3E12%3A31%3C%2Fetastart%3E%0A++++++++++++++++++++%3Cetaend%3E13%3A31%3C%2Fetaend%3E%0A++++++++++++++++++++%3Cimagekey%3E%3C%2Fimagekey%3E%0A++++++++++++++++%3C%2Ftrackingevent%3E%0A++++++++++++++++%3Ctrackingevent%3E%0A++++++++++++++++++++%3Cdate%3E2022-09-24T00%3A36%3A00%2B01%3A00%3C%2Fdate%3E%0A++++++++++++++++++++%3Ccode%3E4%3C%2Fcode%3E%0A++++++++++++++++++++%3Ctype%3ECONFIRMED+AT+DEPOT%3C%2Ftype%3E%0A++++++++++++++++++++%3Cdescription%3EConfirmed+at+depot%3C%2Fdescription%3E%0A++++++++++++++++++++%3Clocality%3EPeterborough%3C%2Flocality%3E%0A++++++++++++++++++++%3Ccountrycode%3EGB%3C%2Fcountrycode%3E%0A++++++++++++++++++++%3Cimagekey%3E%3C%2Fimagekey%3E%0A++++++++++++++++%3C%2Ftrackingevent%3E%0A++++++++++++++++%3Ctrackingevent%3E%0A++++++++++++++++++++%3Cdate%3E2022-09-24T00%3A17%3A00%2B01%3A00%3C%2Fdate%3E%0A++++++++++++++++++++%3Ccode%3E4%3C%2Fcode%3E%0A++++++++++++++++++++%3Ctype%3ECONFIRMED+AT+DEPOT%3C%2Ftype%3E%0A++++++++++++++++++++%3Cdescription%3EConfirmed+at+depot%3C%2Fdescription%3E%0A++++++++++++++++++++%3Clocality%3EPeterborough%3C%2Flocality%3E%0A++++++++++++++++++++%3Ccountrycode%3EGB%3C%2Fcountrycode%3E%0A++++++++++++++++++++%3Cimagekey%3E%3C%2Fimagekey%3E%0A++++++++++++++++%3C%2Ftrackingevent%3E%0A++++++++++++++++%3Ctrackingevent%3E%0A++++++++++++++++++++%3Cdate%3E2022-09-23T20%3A01%3A00%2B01%3A00%3C%2Fdate%3E%0A++++++++++++++++++++%3Ccode%3E9%3C%2Fcode%3E%0A++++++++++++++++++++%3Ctype%3EHUB+SCAN%3C%2Ftype%3E%0A++++++++++++++++++++%3Cdescription%3EConfirmed+at+Hub%3C%2Fdescription%3E%0A++++++++++++++++++++%3Clocality%3EHub+3+-+Bham%3C%2Flocality%3E%0A++++++++++++++++++++%3Ccountrycode%3EGB%3C%2Fcountrycode%3E%0A++++++++++++++++++++%3Cimagekey%3E%3C%2Fimagekey%3E%0A++++++++++++++++%3C%2Ftrackingevent%3E%0A++++++++++++++++%3Ctrackingevent%3E%0A++++++++++++++++++++%3Cdate%3E2022-09-23T18%3A34%3A00%2B01%3A00%3C%2Fdate%3E%0A++++++++++++++++++++%3Ccode%3E0%3C%2Fcode%3E%0A++++++++++++++++++++%3Ctype%3EPARCEL+DATA%3C%2Ftype%3E%0A++++++++++++++++++++%3Cdescription%3ECustomer+data+received%3C%2Fdescription%3E%0A++++++++++++++++++++%3Clocality%3EBirmingham%3C%2Flocality%3E%0A++++++++++++++++++++%3Ccountrycode%3EGB%3C%2Fcountrycode%3E%0A++++++++++++++++++++%3Cimagekey%3E%3C%2Fimagekey%3E%0A++++++++++++++++%3C%2Ftrackingevent%3E%0A++++++++++++%3C%2Ftrackingevents%3E%0A++++++++%3C%2Ftrackingdetail%3E%0A++++%3C%2Ftrackingdetails%3E%0A%3C%2Ftrackingresponse%3E'
   73     1        INIT_FCALL                                               'simplexml_load_string'
          2        SEND_VAR                                                 !0
          3        DO_ICALL                                         $4      
          4        ASSIGN                                                   !1, $4
   76     5        FETCH_OBJ_R                                      ~6      !1, 'trackingdetails'
          6        FETCH_OBJ_R                                      ~7      ~6, 'trackingdetail'
          7      > FE_RESET_R                                       $8      ~7, ->12
          8    > > FE_FETCH_R                                               $8, !2, ->12
   77     9    >   FETCH_OBJ_R                                      ~9      !2, 'trackingnumber'
         10        ECHO                                                     ~9
   76    11      > JMP                                                      ->8
         12    >   FE_FREE                                                  $8
   80    13        ECHO                                                     '%0A'
   83    14        FETCH_OBJ_R                                      ~10     !1, 'trackingdetails'
         15        FETCH_OBJ_R                                      ~11     ~10, 'trackingdetail'
         16        FETCH_OBJ_R                                      ~12     ~11, 'trackingnumber'
         17        ECHO                                                     ~12
   84    18      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
192.7 ms | 1400 KiB | 15 Q