3v4l.org

run code in 300+ PHP versions simultaneously
<?php var_dump(get_type([]));die; $source = <<<XML <?xml version="1.0" encoding="UTF-8"?> <datapacket packet_type="send_data" version="3.15.3.15" level="1" reg_number="705" ogrn="1027808757899" mac_address="50:46:5D:4E:F7:06" comp_name="k415-1" interval_end_date="2015-03-26 14:12:53"> <teachers> <teacher teacher_id="705000000208" fio="Яловенко Любовь Николаевна" uid=""/> <teacher teacher_id="705000000211" fio="Шкарубо Людмила Ивановна" uid=""/> <teacher teacher_id="705000000214" fio="Шибаева Оксана Викторовна" uid=""/> <teacher_delete teacher_id="705000000214" fio="Шибаева Оксана Викторовна" uid=""/> <teacher_delete teacher_id="705000000214" fio="Шибаева Оксана Викторовна" uid=""/> </teachers> <last_marks> <last_mark last_mark_id="705000111240"/> <last_mark last_mark_id="705000111240"/> <last_mark_deleted last_mark_id="705000111240"/> <last_mark_deleted last_mark_id="705000144740"/> <last_mark_deleted last_mark_id="705000200530"/> </last_marks> </datapacket> XML; $reader = new XMLReader(); if ($reader->xml($source)) { var_dump($reader->readString());die; } else { throw new Exeption('Ошибка при разборе XML'); } // LIBXML_ERR_ERROR // LIBXML_ERR_FATAL // LIBXML_ERR_NONE // LIBXML_ERR_WARNING var_dump($xml); die; $xml = simplexml_load_string($string); foreach($xml->children()->children() as $nodeName => $child) { var_dump($child); $child = $child->attributes(); var_dump($child); $child = $child['@attributes']; var_dump($child); die; } die; $xml = new SimpleXMLElement($string); $result = $xml->xpath('teachers'); var_dump($result); die; while(list( , $node) = each($result)) { echo '/teachers: ',$node,"\n"; } /* Относительные пути также работают... */ $result = $xml->xpath('b/c'); while(list( , $node) = each($result)) { echo 'b/c: ',$node,"\n"; } ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 79) Position 1 = -2
filename:       /in/eUFSF
function name:  (null)
number of ops:  96
compiled vars:  !0 = $source, !1 = $reader, !2 = $xml, !3 = $string, !4 = $child, !5 = $nodeName, !6 = $result, !7 = $node
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   INIT_FCALL                                               'var_dump'
          1        INIT_FCALL_BY_NAME                                       'get_type'
          2        SEND_VAL_EX                                              <array>
          3        DO_FCALL                                      0  $8      
          4        SEND_VAR                                                 $8
          5        DO_ICALL                                                 
          6      > EXIT                                                     
    5     7*       ASSIGN                                                   !0, '%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%0A%3Cdatapacket+packet_type%3D%22send_data%22+version%3D%223.15.3.15%22+level%3D%221%22+reg_number%3D%22705%22+ogrn%3D%221027808757899%22+mac_address%3D%2250%3A46%3A5D%3A4E%3AF7%3A06%22+comp_name%3D%22k415-1%22+interval_end_date%3D%222015-03-26+14%3A12%3A53%22%3E%0A++++%3Cteachers%3E%0A++++++++%3Cteacher+teacher_id%3D%22705000000208%22+fio%3D%22%D0%AF%D0%BB%D0%BE%D0%B2%D0%B5%D0%BD%D0%BA%D0%BE+%D0%9B%D1%8E%D0%B1%D0%BE%D0%B2%D1%8C+%D0%9D%D0%B8%D0%BA%D0%BE%D0%BB%D0%B0%D0%B5%D0%B2%D0%BD%D0%B0%22+uid%3D%22%22%2F%3E%0A++++++++%3Cteacher+teacher_id%3D%22705000000211%22+fio%3D%22%D0%A8%D0%BA%D0%B0%D1%80%D1%83%D0%B1%D0%BE+%D0%9B%D1%8E%D0%B4%D0%BC%D0%B8%D0%BB%D0%B0+%D0%98%D0%B2%D0%B0%D0%BD%D0%BE%D0%B2%D0%BD%D0%B0%22+uid%3D%22%22%2F%3E%0A++++++++%3Cteacher+teacher_id%3D%22705000000214%22+fio%3D%22%D0%A8%D0%B8%D0%B1%D0%B0%D0%B5%D0%B2%D0%B0+%D0%9E%D0%BA%D1%81%D0%B0%D0%BD%D0%B0+%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2%D0%BD%D0%B0%22+uid%3D%22%22%2F%3E%0A++++++++%3Cteacher_delete+teacher_id%3D%22705000000214%22+fio%3D%22%D0%A8%D0%B8%D0%B1%D0%B0%D0%B5%D0%B2%D0%B0+%D0%9E%D0%BA%D1%81%D0%B0%D0%BD%D0%B0+%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2%D0%BD%D0%B0%22+uid%3D%22%22%2F%3E%0A++++++++%3Cteacher_delete+teacher_id%3D%22705000000214%22+fio%3D%22%D0%A8%D0%B8%D0%B1%D0%B0%D0%B5%D0%B2%D0%B0+%D0%9E%D0%BA%D1%81%D0%B0%D0%BD%D0%B0+%D0%92%D0%B8%D0%BA%D1%82%D0%BE%D1%80%D0%BE%D0%B2%D0%BD%D0%B0%22+uid%3D%22%22%2F%3E%0A++++%3C%2Fteachers%3E%0A++++%3Clast_marks%3E%0A++++++++%3Clast_mark+last_mark_id%3D%22705000111240%22%2F%3E%0A++++++++%3Clast_mark+last_mark_id%3D%22705000111240%22%2F%3E%0A++++++++%3Clast_mark_deleted+last_mark_id%3D%22705000111240%22%2F%3E%0A++++++++%3Clast_mark_deleted+last_mark_id%3D%22705000144740%22%2F%3E%0A++++++++%3Clast_mark_deleted+last_mark_id%3D%22705000200530%22%2F%3E%0A++++%3C%2Flast_marks%3E%0A%3C%2Fdatapacket%3E'
   25     8*       NEW                                              $11     'XMLReader'
          9*       DO_FCALL                                      0          
         10*       ASSIGN                                                   !1, $11
   26    11*       INIT_METHOD_CALL                                         !1, 'xml'
         12*       SEND_VAR_EX                                              !0
         13*       DO_FCALL                                      0  $14     
         14*       JMPZ                                                     $14, ->22
   27    15*       INIT_FCALL                                               'var_dump'
         16*       INIT_METHOD_CALL                                         !1, 'readString'
         17*       DO_FCALL                                      0  $15     
         18*       SEND_VAR                                                 $15
         19*       DO_ICALL                                                 
         20*       EXIT                                                     
         21*       JMP                                                      ->26
   29    22*       NEW                                              $17     'Exeption'
         23*       SEND_VAL_EX                                              '%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0+%D0%BF%D1%80%D0%B8+%D1%80%D0%B0%D0%B7%D0%B1%D0%BE%D1%80%D0%B5+XML'
         24*       DO_FCALL                                      0          
         25*       THROW                                         0          $17
   37    26*       INIT_FCALL                                               'var_dump'
         27*       SEND_VAR                                                 !2
         28*       DO_ICALL                                                 
   43    29*       EXIT                                                     
   56    30*       INIT_FCALL                                               'simplexml_load_string'
         31*       SEND_VAR                                                 !3
         32*       DO_ICALL                                         $20     
         33*       ASSIGN                                                   !2, $20
   59    34*       INIT_METHOD_CALL                                         !2, 'children'
         35*       DO_FCALL                                      0  $22     
         36*       INIT_METHOD_CALL                                         $22, 'children'
         37*       DO_FCALL                                      0  $23     
         38*       FE_RESET_R                                       $24     $23, ->57
         39*       FE_FETCH_R                                       ~25     $24, !4, ->57
         40*       ASSIGN                                                   !5, ~25
   60    41*       INIT_FCALL                                               'var_dump'
         42*       SEND_VAR                                                 !4
         43*       DO_ICALL                                                 
   61    44*       INIT_METHOD_CALL                                         !4, 'attributes'
         45*       DO_FCALL                                      0  $28     
         46*       ASSIGN                                                   !4, $28
   62    47*       INIT_FCALL                                               'var_dump'
         48*       SEND_VAR                                                 !4
         49*       DO_ICALL                                                 
   63    50*       FETCH_DIM_R                                      ~31     !4, '%40attributes'
         51*       ASSIGN                                                   !4, ~31
   65    52*       INIT_FCALL                                               'var_dump'
         53*       SEND_VAR                                                 !4
         54*       DO_ICALL                                                 
   66    55*       EXIT                                                     
   59    56*       JMP                                                      ->39
         57*       FE_FREE                                                  $24
   68    58*       EXIT                                                     
   69    59*       NEW                                              $34     'SimpleXMLElement'
         60*       SEND_VAR_EX                                              !3
         61*       DO_FCALL                                      0          
         62*       ASSIGN                                                   !2, $34
   72    63*       INIT_METHOD_CALL                                         !2, 'xpath'
         64*       SEND_VAL_EX                                              'teachers'
         65*       DO_FCALL                                      0  $37     
         66*       ASSIGN                                                   !6, $37
   74    67*       INIT_FCALL                                               'var_dump'
         68*       SEND_VAR                                                 !6
         69*       DO_ICALL                                                 
   75    70*       EXIT                                                     
   77    71*       JMP                                                      ->75
   78    72*       ECHO                                                     '%2Fteachers%3A+'
         73*       ECHO                                                     !7
         74*       ECHO                                                     '%0A'
   77    75*       INIT_FCALL_BY_NAME                                       'each'
         76*       SEND_VAR_EX                                              !6
         77*       DO_FCALL                                      0  $40     
         78*       FETCH_LIST_R                                     $41     $40, 1
         79*       ASSIGN                                                   !7, $41
         80*       JMPNZ                                                    $40, ->72
   82    81*       INIT_METHOD_CALL                                         !2, 'xpath'
         82*       SEND_VAL_EX                                              'b%2Fc'
         83*       DO_FCALL                                      0  $43     
         84*       ASSIGN                                                   !6, $43
   84    85*       JMP                                                      ->89
   85    86*       ECHO                                                     'b%2Fc%3A+'
         87*       ECHO                                                     !7
         88*       ECHO                                                     '%0A'
   84    89*       INIT_FCALL_BY_NAME                                       'each'
         90*       SEND_VAR_EX                                              !6
         91*       DO_FCALL                                      0  $45     
         92*       FETCH_LIST_R                                     $46     $45, 1
         93*       ASSIGN                                                   !7, $46
         94*       JMPNZ                                                    $45, ->86
   90    95*     > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
158.4 ms | 1404 KiB | 17 Q