3v4l.org

run code in 300+ PHP versions simultaneously
<?php $Value = 'rId4'; $rels= new SimpleXMLElement('<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Target="theme/theme1.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet2.xml"/><Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Target="worksheets/sheet1.xml"/><Relationship Id="rId5" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings" Target="sharedStrings.xml"/><Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Target="styles.xml"/></Relationships>'); $rels->registerXPathNamespace('r', 'http://schemas.openxmlformats.org/package/2006/relationships'); $elems = $rels->xpath('/r:Relationships/r:Relationship[@Id and @Target and @Type = \'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\']'); echo get_class($elems[0]), PHP_EOL; echo get_class($elems[0]->Target), PHP_EOL; echo $elems[0]->Target, PHP_EOL; echo get_class($elems[0]->Target[0]), PHP_EOL; echo $elems[0]->Target[0], PHP_EOL; $map = []; foreach ( $elems as $elem ) { $map[$elem['Id']] = $elem['Target']; } print_r($map);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 39, Position 2 = 45
Branch analysis from position: 39
2 jumps found. (Code = 78) Position 1 = 40, Position 2 = 45
Branch analysis from position: 40
1 jumps found. (Code = 42) Position 1 = 39
Branch analysis from position: 39
Branch analysis from position: 45
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 45
filename:       /in/PZoLY
function name:  (null)
number of ops:  50
compiled vars:  !0 = $Value, !1 = $rels, !2 = $elems, !3 = $map, !4 = $elem
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, 'rId4'
    3     1        NEW                                              $6      'SimpleXMLElement'
          2        SEND_VAL_EX                                              '%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22+standalone%3D%22yes%22%3F%3E%0A%3CRelationships+xmlns%3D%22http%3A%2F%2Fschemas.openxmlformats.org%2Fpackage%2F2006%2Frelationships%22%3E%3CRelationship+Id%3D%22rId3%22+Type%3D%22http%3A%2F%2Fschemas.openxmlformats.org%2FofficeDocument%2F2006%2Frelationships%2Ftheme%22+Target%3D%22theme%2Ftheme1.xml%22%2F%3E%3CRelationship+Id%3D%22rId2%22+Type%3D%22http%3A%2F%2Fschemas.openxmlformats.org%2FofficeDocument%2F2006%2Frelationships%2Fworksheet%22+Target%3D%22worksheets%2Fsheet2.xml%22%2F%3E%3CRelationship+Id%3D%22rId1%22+Type%3D%22http%3A%2F%2Fschemas.openxmlformats.org%2FofficeDocument%2F2006%2Frelationships%2Fworksheet%22+Target%3D%22worksheets%2Fsheet1.xml%22%2F%3E%3CRelationship+Id%3D%22rId5%22+Type%3D%22http%3A%2F%2Fschemas.openxmlformats.org%2FofficeDocument%2F2006%2Frelationships%2FsharedStrings%22+Target%3D%22sharedStrings.xml%22%2F%3E%3CRelationship+Id%3D%22rId4%22+Type%3D%22http%3A%2F%2Fschemas.openxmlformats.org%2FofficeDocument%2F2006%2Frelationships%2Fstyles%22+Target%3D%22styles.xml%22%2F%3E%3C%2FRelationships%3E'
          3        DO_FCALL                                      0          
          4        ASSIGN                                                   !1, $6
    6     5        INIT_METHOD_CALL                                         !1, 'registerXPathNamespace'
          6        SEND_VAL_EX                                              'r'
          7        SEND_VAL_EX                                              'http%3A%2F%2Fschemas.openxmlformats.org%2Fpackage%2F2006%2Frelationships'
          8        DO_FCALL                                      0          
    7     9        INIT_METHOD_CALL                                         !1, 'xpath'
         10        SEND_VAL_EX                                              '%2Fr%3ARelationships%2Fr%3ARelationship%5B%40Id+and+%40Target+and+%40Type+%3D+%27http%3A%2F%2Fschemas.openxmlformats.org%2FofficeDocument%2F2006%2Frelationships%2Fworksheet%27%5D'
         11        DO_FCALL                                      0  $10     
         12        ASSIGN                                                   !2, $10
    9    13        FETCH_DIM_R                                      ~12     !2, 0
         14        GET_CLASS                                        ~13     ~12
         15        ECHO                                                     ~13
         16        ECHO                                                     '%0A'
   10    17        FETCH_DIM_R                                      ~14     !2, 0
         18        FETCH_OBJ_R                                      ~15     ~14, 'Target'
         19        GET_CLASS                                        ~16     ~15
         20        ECHO                                                     ~16
         21        ECHO                                                     '%0A'
   11    22        FETCH_DIM_R                                      ~17     !2, 0
         23        FETCH_OBJ_R                                      ~18     ~17, 'Target'
         24        ECHO                                                     ~18
         25        ECHO                                                     '%0A'
   12    26        FETCH_DIM_R                                      ~19     !2, 0
         27        FETCH_OBJ_R                                      ~20     ~19, 'Target'
         28        FETCH_DIM_R                                      ~21     ~20, 0
         29        GET_CLASS                                        ~22     ~21
         30        ECHO                                                     ~22
         31        ECHO                                                     '%0A'
   13    32        FETCH_DIM_R                                      ~23     !2, 0
         33        FETCH_OBJ_R                                      ~24     ~23, 'Target'
         34        FETCH_DIM_R                                      ~25     ~24, 0
         35        ECHO                                                     ~25
         36        ECHO                                                     '%0A'
   15    37        ASSIGN                                                   !3, <array>
   16    38      > FE_RESET_R                                       $27     !2, ->45
         39    > > FE_FETCH_R                                               $27, !4, ->45
   18    40    >   FETCH_DIM_R                                      ~28     !4, 'Id'
         41        FETCH_DIM_R                                      ~30     !4, 'Target'
         42        ASSIGN_DIM                                               !3, ~28
         43        OP_DATA                                                  ~30
   16    44      > JMP                                                      ->39
         45    >   FE_FREE                                                  $27
   21    46        INIT_FCALL                                               'print_r'
         47        SEND_VAR                                                 !3
         48        DO_ICALL                                                 
         49      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
152.87 ms | 1400 KiB | 15 Q