3v4l.org

run code in 500+ PHP versions simultaneously
<?php $xml = <<<XML <body> <form name="mainform" method="POST" action="baz" class="all"> <input type="submit" value="" style="position:absolute;top:-9999px;left:-9999px;" name="apply"/> <p>foo</p> <div class="bar"> .. </div> <br/> <div class="onPageTabsBox"> <ul class="tabs onPageTabs"> ... </ul> </div> <table id="baz"> <tr class="thead"> ... </tr> </table> <div id="uiScroll"> <table id="bla"> <tr class="showif_in"> ... </tr> ... <tr class="showif_out"> <td class="call_out" title="outbound call" datalabel="29.12.19 11:13"/> <td>29.12.19 11:13</td> <td title="Doe, John (privat) = 0123456789" datalabel="Name / Rufnummer"> <a href=" " onclick="return onDial('0123456789');">Doe, John (privat)</a> </td> <td datalabel="foo">bar</td> <td title="987654 (Internet)" datalabel="own number">987654</td> <td class="duration" data-timestr="0:02" datalabel="duration">2 Min</td> <td class="btncolumn"> ... </td> </tr> <tr class="showif_out"> ... </tr> </table> </div> </form> </body> XML; $dom = simplexml_load_string($xml); $rowTitleAttrs = $dom->xpath('//tr[@class="showif_out"]/td/@title'); $phoneNumbers = []; foreach ($rowTitleAttrs as $rowTitleAttr) { if (preg_match('/(?<= = )(?<phoneNumber>.*?)$/', $rowTitleAttr->title, $matches)) { $phoneNumbers[] = $matches['phoneNumber']; } } print_r($phoneNumbers);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 11, Position 2 = 23
Branch analysis from position: 11
2 jumps found. (Code = 78) Position 1 = 12, Position 2 = 23
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 19, Position 2 = 22
Branch analysis from position: 19
1 jumps found. (Code = 42) Position 1 = 11
Branch analysis from position: 11
Branch analysis from position: 22
Branch analysis from position: 23
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 23
filename:       /in/1oqqA
function name:  (null)
number of ops:  28
compiled vars:  !0 = $xml, !1 = $dom, !2 = $rowTitleAttrs, !3 = $phoneNumbers, !4 = $rowTitleAttr, !5 = $matches
line      #* E I O op                               fetch          ext  return  operands
-----------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                       !0, '%3Cbody%3E%0A++++%3Cform+name%3D%22mainform%22+method%3D%22POST%22+action%3D%22baz%22+class%3D%22all%22%3E%0A++++++++%3Cinput+type%3D%22submit%22+value%3D%22%22+style%3D%22position%3Aabsolute%3Btop%3A-9999px%3Bleft%3A-9999px%3B%22+name%3D%22apply%22%2F%3E%0A++++++++%3Cp%3Efoo%3C%2Fp%3E%0A++++++++%3Cdiv+class%3D%22bar%22%3E%0A++++++++++++..%0A++++++++%3C%2Fdiv%3E%0A++++++++%3Cbr%2F%3E%0A++++++++%3Cdiv+class%3D%22onPageTabsBox%22%3E%0A++++++++++++%3Cul+class%3D%22tabs+onPageTabs%22%3E%0A++++++++++++++++...%0A++++++++++++%3C%2Ful%3E%0A++++++++%3C%2Fdiv%3E%0A++++++++%3Ctable+id%3D%22baz%22%3E%0A++++++++++++%3Ctr+class%3D%22thead%22%3E%0A++++++++++++++++...%0A++++++++++++%3C%2Ftr%3E%0A++++++++%3C%2Ftable%3E%0A++++++++%3Cdiv+id%3D%22uiScroll%22%3E%0A++++++++++++%3Ctable+id%3D%22bla%22%3E%0A++++++++++++++++%3Ctr+class%3D%22showif_in%22%3E%0A++++++++++++++++++++...%0A++++++++++++++++%3C%2Ftr%3E%0A++++++++++++++++...++++%0A++++++++++++++++%3Ctr+class%3D%22showif_out%22%3E%0A++++++++++++++++++++%3Ctd+class%3D%22call_out%22+title%3D%22outbound+call%22+datalabel%3D%2229.12.19+11%3A13%22%2F%3E%0A++++++++++++++++++++%3Ctd%3E29.12.19+11%3A13%3C%2Ftd%3E%0A++++++++++++++++++++%3Ctd+title%3D%22Doe%2C+John+%28privat%29+%3D+0123456789%22+datalabel%3D%22Name+%2F+Rufnummer%22%3E%0A++++++++++++++++++++++++%3Ca+href%3D%22+%22+onclick%3D%22return+onDial%28%270123456789%27%29%3B%22%3EDoe%2C+John+%28privat%29%3C%2Fa%3E%0A++++++++++++++++++++%3C%2Ftd%3E%0A++++++++++++++++++++%3Ctd+datalabel%3D%22foo%22%3Ebar%3C%2Ftd%3E%0A++++++++++++++++++++%3Ctd+title%3D%22987654+%28Internet%29%22+datalabel%3D%22own+number%22%3E987654%3C%2Ftd%3E%0A++++++++++++++++++++%3Ctd+class%3D%22duration%22+data-timestr%3D%220%3A02%22+datalabel%3D%22duration%22%3E2+Min%3C%2Ftd%3E%0A++++++++++++++++++++%3Ctd+class%3D%22btncolumn%22%3E%0A++++++++++++++++++++++++...++++++++++++++++++++++++%0A++++++++++++++++++++%3C%2Ftd%3E%0A++++++++++++++++%3C%2Ftr%3E%0A++++++++++++++++%3Ctr+class%3D%22showif_out%22%3E%0A++++++++++++++++++++...%0A++++++++++++++++%3C%2Ftr%3E%0A++++++++++++%3C%2Ftable%3E%0A++++++++%3C%2Fdiv%3E%0A++++%3C%2Fform%3E%0A%3C%2Fbody%3E'
   50     1        INIT_FCALL                                                   'simplexml_load_string'
          2        SEND_VAR                                                     !0
          3        DO_ICALL                                             $7      
          4        ASSIGN                                                       !1, $7
   52     5        INIT_METHOD_CALL                                             !1, 'xpath'
          6        SEND_VAL_EX                                                  '%2F%2Ftr%5B%40class%3D%22showif_out%22%5D%2Ftd%2F%40title'
          7        DO_FCALL                                          0  $9      
          8        ASSIGN                                                       !2, $9
   54     9        ASSIGN                                                       !3, <array>
   55    10      > FE_RESET_R                                           $12     !2, ->23
         11    > > FE_FETCH_R                                                   $12, !4, ->23
   56    12    >   INIT_FCALL                                                   'preg_match'
         13        SEND_VAL                                                     '%2F%28%3F%3C%3D+%3D+%29%28%3F%3CphoneNumber%3E.%2A%3F%29%24%2F'
         14        FETCH_OBJ_R                                          ~13     !4, 'title'
         15        SEND_VAL                                                     ~13
         16        SEND_REF                                                     !5
         17        DO_ICALL                                             $14     
         18      > JMPZ                                                         $14, ->22
   57    19    >   FETCH_DIM_R                                          ~16     !5, 'phoneNumber'
         20        ASSIGN_DIM                                                   !3
         21        OP_DATA                                                      ~16
   55    22    > > JMP                                                          ->11
         23    >   FE_FREE                                                      $12
   60    24        INIT_FCALL                                                   'print_r'
         25        SEND_VAR                                                     !3
         26        DO_ICALL                                                     
         27      > RETURN                                                       1

Generated using Vulcan Logic Dumper, using php 8.5.0


preferences:
159.76 ms | 2080 KiB | 16 Q