3v4l.org

run code in 300+ 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.0.0


preferences:
147.88 ms | 1012 KiB | 16 Q