3v4l.org

run code in 300+ PHP versions simultaneously
<?php if (PHP_VERSION !== '7.2.7') { exit; } $data = <<< HTML <html><body> <div class="membersListRow"> <span class="hoverstateBorder"></span> <span class="avatar"><img src="http://services.runescape.com/m=avatar-rs/x%A0Appolyon%A0x/chat.png?cachebust=1529804535501" alt="x Appolyon x" title="" /></span> <span class="name">x Appolyon x</span> <span class="clanRank">Deputy Owner</span> <span class="proStatus"></span> <span class="totalXP">31,330,901</span> <span class="kills">0</span> <span class="onlineStatus"> <span class="imageIcon"> <img alt="online" src="http://www.runescape.com/img/global/myprofile/icon-status-green.png"> </span> <span class="world"> RS 72 </span> </span> <span class="hoverstate"></span> <form action="http://services.runescape.com/m=hiscore/compare.ws" method="post" class="viewStats"> <input type="hidden" name="user1" value="x%A0Appolyon%A0x" /> <input class="gotoStats" type="submit" value="" /> </form> </div> <div class="membersListRow"> <span class="hoverstateBorder"></span> <span class="avatar"><img src="http://services.runescape.com/m=avatar-rs/Ashmund/chat.png?cachebust=1529804535501" alt="Ashmund" title="" /></span> <span class="name">Ashmund</span> <span class="clanRank">Deputy Owner</span> <span class="proStatus"></span> <span class="totalXP">42,403,390</span> <span class="kills">1</span> <span class="onlineStatus"> <span class="imageIcon"> <img alt="online" src="http://www.runescape.com/img/global/myprofile/icon-status-red.png"> </span> <span class="world"> Offline </span> </span> <span class="hoverstate"></span> <form action="http://services.runescape.com/m=hiscore/compare.ws" method="post" class="viewStats"> <input type="hidden" name="user1" value="Ashmund" /> <input class="gotoStats" type="submit" value="" /> </form> </div> <div class="membersListRow"> <span class="hoverstateBorder"></span> <span class="avatar"><img src="http://services.runescape.com/m=avatar-rs/brokensteel/chat.png?cachebust=1529804535501" alt="brokensteel" title="" /></span> <span class="name">brokensteel</span> <span class="clanRank">Deputy Owner</span> <span class="proStatus"></span> <span class="totalXP">20,634,741</span> <span class="kills">10</span> <span class="onlineStatus"> <span class="imageIcon"> <img alt="online" src="http://www.runescape.com/img/global/myprofile/icon-status-red.png"> </span> <span class="world"> Offline </span> </span> <span class="hoverstate"></span> <form action="http://services.runescape.com/m=hiscore/compare.ws" method="post" class="viewStats"> <input type="hidden" name="user1" value="brokensteel" /> <input class="gotoStats" type="submit" value="" /> </form> </div> <div class="membersListRow"> <span class="hoverstateBorder"></span> <span class="avatar"><img src="http://services.runescape.com/m=avatar-rs/Robertjones6/chat.png?cachebust=1529804535501" alt="Robertjones6" title="" /></span> <span class="name">Robertjones6</span> <span class="clanRank">Deputy Owner</span> <span class="proStatus"></span> <span class="totalXP">1,149,030</span> <span class="kills">0</span> <span class="onlineStatus"> <span class="imageIcon"> <img alt="online" src="http://www.runescape.com/img/global/myprofile/icon-status-red.png"> </span> <span class="world"> Offline </span> </span> <span class="hoverstate"></span> <form action="http://services.runescape.com/m=hiscore/compare.ws" method="post" class="viewStats"> <input type="hidden" name="user1" value="Robertjones6" /> <input class="gotoStats" type="submit" value="" /> </form> </div> </body></html> HTML; $doc = new DOMDocument(); $doc->loadHTML($data); $xpath = new DOMXpath($doc); $elements = $xpath->query("/html/body//div[@class='membersListRow']"); if (!is_null($elements)) { foreach ($elements as $element) { $username = trim($xpath->query("/span[@class='name']", $element)->item(0)->nodeValue); $world = trim($xpath->query("/span[@class='world']", $element)->item(0)->nodeValue); echo ($world === 'Offline') ? "{$username} is on {$world}\n" : "{$username} is offline\n"; } }
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 1, Position 2 = 2
Branch analysis from position: 1
1 jumps found. (Code = 79) Position 1 = -2
Branch analysis from position: 2
2 jumps found. (Code = 43) Position 1 = 20, Position 2 = 60
Branch analysis from position: 20
2 jumps found. (Code = 77) Position 1 = 21, Position 2 = 59
Branch analysis from position: 21
2 jumps found. (Code = 78) Position 1 = 22, Position 2 = 59
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 48, Position 2 = 54
Branch analysis from position: 48
1 jumps found. (Code = 42) Position 1 = 57
Branch analysis from position: 57
1 jumps found. (Code = 42) Position 1 = 21
Branch analysis from position: 21
Branch analysis from position: 54
1 jumps found. (Code = 42) Position 1 = 21
Branch analysis from position: 21
Branch analysis from position: 59
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 59
Branch analysis from position: 60
filename:       /in/I2pWF
function name:  (null)
number of ops:  61
compiled vars:  !0 = $data, !1 = $doc, !2 = $xpath, !3 = $elements, !4 = $element, !5 = $username, !6 = $world
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E > > JMPZ                                                     <true>, ->2
          1    > > EXIT                                                     
    4     2    >   ASSIGN                                                   !0, '%3Chtml%3E%3Cbody%3E%0A%3Cdiv+class%3D%22membersListRow%22%3E%0A%3Cspan+class%3D%22hoverstateBorder%22%3E%3C%2Fspan%3E%0A%3Cspan+class%3D%22avatar%22%3E%3Cimg+src%3D%22http%3A%2F%2Fservices.runescape.com%2Fm%3Davatar-rs%2Fx%25A0Appolyon%25A0x%2Fchat.png%3Fcachebust%3D1529804535501%22+alt%3D%22x+Appolyon+x%22+title%3D%22%22+%2F%3E%3C%2Fspan%3E%0A%3Cspan+class%3D%22name%22%3Ex+Appolyon+x%3C%2Fspan%3E%0A%3Cspan+class%3D%22clanRank%22%3EDeputy+Owner%3C%2Fspan%3E%0A%3Cspan+class%3D%22proStatus%22%3E%3C%2Fspan%3E%0A%3Cspan+class%3D%22totalXP%22%3E31%2C330%2C901%3C%2Fspan%3E%0A%3Cspan+class%3D%22kills%22%3E0%3C%2Fspan%3E%0A%3Cspan+class%3D%22onlineStatus%22%3E%0A%3Cspan+class%3D%22imageIcon%22%3E%0A%3Cimg+alt%3D%22online%22+src%3D%22http%3A%2F%2Fwww.runescape.com%2Fimg%2Fglobal%2Fmyprofile%2Ficon-status-green.png%22%3E%0A%3C%2Fspan%3E%0A%3Cspan+class%3D%22world%22%3E%0ARS+72%0A%3C%2Fspan%3E%0A%3C%2Fspan%3E%0A%3Cspan+class%3D%22hoverstate%22%3E%3C%2Fspan%3E%0A%3Cform+action%3D%22http%3A%2F%2Fservices.runescape.com%2Fm%3Dhiscore%2Fcompare.ws%22+method%3D%22post%22+class%3D%22viewStats%22%3E%0A%3Cinput+type%3D%22hidden%22+name%3D%22user1%22+value%3D%22x%25A0Appolyon%25A0x%22+%2F%3E%0A%3Cinput+class%3D%22gotoStats%22+type%3D%22submit%22+value%3D%22%22+%2F%3E%0A%3C%2Fform%3E%0A%3C%2Fdiv%3E%0A%0A%3Cdiv+class%3D%22membersListRow%22%3E%0A%3Cspan+class%3D%22hoverstateBorder%22%3E%3C%2Fspan%3E%0A%3Cspan+class%3D%22avatar%22%3E%3Cimg+src%3D%22http%3A%2F%2Fservices.runescape.com%2Fm%3Davatar-rs%2FAshmund%2Fchat.png%3Fcachebust%3D1529804535501%22+alt%3D%22Ashmund%22+title%3D%22%22+%2F%3E%3C%2Fspan%3E%0A%3Cspan+class%3D%22name%22%3EAshmund%3C%2Fspan%3E%0A%3Cspan+class%3D%22clanRank%22%3EDeputy+Owner%3C%2Fspan%3E%0A%3Cspan+class%3D%22proStatus%22%3E%3C%2Fspan%3E%0A%3Cspan+class%3D%22totalXP%22%3E42%2C403%2C390%3C%2Fspan%3E%0A%3Cspan+class%3D%22kills%22%3E1%3C%2Fspan%3E%0A%3Cspan+class%3D%22onlineStatus%22%3E%0A%3Cspan+class%3D%22imageIcon%22%3E%0A%3Cimg+alt%3D%22online%22+src%3D%22http%3A%2F%2Fwww.runescape.com%2Fimg%2Fglobal%2Fmyprofile%2Ficon-status-red.png%22%3E%0A%3C%2Fspan%3E%0A%3Cspan+class%3D%22world%22%3E%0A%0AOffline%0A%3C%2Fspan%3E%0A%3C%2Fspan%3E%0A%3Cspan+class%3D%22hoverstate%22%3E%3C%2Fspan%3E%0A%3Cform+action%3D%22http%3A%2F%2Fservices.runescape.com%2Fm%3Dhiscore%2Fcompare.ws%22+method%3D%22post%22+class%3D%22viewStats%22%3E%0A%3Cinput+type%3D%22hidden%22+name%3D%22user1%22+value%3D%22Ashmund%22+%2F%3E%0A%3Cinput+class%3D%22gotoStats%22+type%3D%22submit%22+value%3D%22%22+%2F%3E%0A%3C%2Fform%3E%0A%3C%2Fdiv%3E%0A%0A%3Cdiv+class%3D%22membersListRow%22%3E%0A%3Cspan+class%3D%22hoverstateBorder%22%3E%3C%2Fspan%3E%0A%3Cspan+class%3D%22avatar%22%3E%3Cimg+src%3D%22http%3A%2F%2Fservices.runescape.com%2Fm%3Davatar-rs%2Fbrokensteel%2Fchat.png%3Fcachebust%3D1529804535501%22+alt%3D%22brokensteel%22+title%3D%22%22+%2F%3E%3C%2Fspan%3E%0A%3Cspan+class%3D%22name%22%3Ebrokensteel%3C%2Fspan%3E%0A%3Cspan+class%3D%22clanRank%22%3EDeputy+Owner%3C%2Fspan%3E%0A%3Cspan+class%3D%22proStatus%22%3E%3C%2Fspan%3E%0A%3Cspan+class%3D%22totalXP%22%3E20%2C634%2C741%3C%2Fspan%3E%0A%3Cspan+class%3D%22kills%22%3E10%3C%2Fspan%3E%0A%3Cspan+class%3D%22onlineStatus%22%3E%0A%3Cspan+class%3D%22imageIcon%22%3E%0A%3Cimg+alt%3D%22online%22+src%3D%22http%3A%2F%2Fwww.runescape.com%2Fimg%2Fglobal%2Fmyprofile%2Ficon-status-red.png%22%3E%0A%3C%2Fspan%3E%0A%3Cspan+class%3D%22world%22%3E%0A%0AOffline%0A%3C%2Fspan%3E%0A%3C%2Fspan%3E%0A%3Cspan+class%3D%22hoverstate%22%3E%3C%2Fspan%3E%0A%3Cform+action%3D%22http%3A%2F%2Fservices.runescape.com%2Fm%3Dhiscore%2Fcompare.ws%22+method%3D%22post%22+class%3D%22viewStats%22%3E%0A%3Cinput+type%3D%22hidden%22+name%3D%22user1%22+value%3D%22brokensteel%22+%2F%3E%0A%3Cinput+class%3D%22gotoStats%22+type%3D%22submit%22+value%3D%22%22+%2F%3E%0A%3C%2Fform%3E%0A%3C%2Fdiv%3E%0A%0A%3Cdiv+class%3D%22membersListRow%22%3E%0A%3Cspan+class%3D%22hoverstateBorder%22%3E%3C%2Fspan%3E%0A%3Cspan+class%3D%22avatar%22%3E%3Cimg+src%3D%22http%3A%2F%2Fservices.runescape.com%2Fm%3Davatar-rs%2FRobertjones6%2Fchat.png%3Fcachebust%3D1529804535501%22+alt%3D%22Robertjones6%22+title%3D%22%22+%2F%3E%3C%2Fspan%3E%0A%3Cspan+class%3D%22name%22%3ERobertjones6%3C%2Fspan%3E%0A%3Cspan+class%3D%22clanRank%22%3EDeputy+Owner%3C%2Fspan%3E%0A%3Cspan+class%3D%22proStatus%22%3E%3C%2Fspan%3E%0A%3Cspan+class%3D%22totalXP%22%3E1%2C149%2C030%3C%2Fspan%3E%0A%3Cspan+class%3D%22kills%22%3E0%3C%2Fspan%3E%0A%3Cspan+class%3D%22onlineStatus%22%3E%0A%3Cspan+class%3D%22imageIcon%22%3E%0A%3Cimg+alt%3D%22online%22+src%3D%22http%3A%2F%2Fwww.runescape.com%2Fimg%2Fglobal%2Fmyprofile%2Ficon-status-red.png%22%3E%0A%3C%2Fspan%3E%0A%3Cspan+class%3D%22world%22%3E%0A%0AOffline%0A%3C%2Fspan%3E%0A%3C%2Fspan%3E%0A%3Cspan+class%3D%22hoverstate%22%3E%3C%2Fspan%3E%0A%3Cform+action%3D%22http%3A%2F%2Fservices.runescape.com%2Fm%3Dhiscore%2Fcompare.ws%22+method%3D%22post%22+class%3D%22viewStats%22%3E%0A%3Cinput+type%3D%22hidden%22+name%3D%22user1%22+value%3D%22Robertjones6%22+%2F%3E%0A%3Cinput+class%3D%22gotoStats%22+type%3D%22submit%22+value%3D%22%22+%2F%3E%0A%3C%2Fform%3E%0A%3C%2Fdiv%3E%0A%0A%3C%2Fbody%3E%3C%2Fhtml%3E'
  104     3        NEW                                              $8      'DOMDocument'
          4        DO_FCALL                                      0          
          5        ASSIGN                                                   !1, $8
  105     6        INIT_METHOD_CALL                                         !1, 'loadHTML'
          7        SEND_VAR_EX                                              !0
          8        DO_FCALL                                      0          
  106     9        NEW                                              $12     'DOMXpath'
         10        SEND_VAR_EX                                              !1
         11        DO_FCALL                                      0          
         12        ASSIGN                                                   !2, $12
  107    13        INIT_METHOD_CALL                                         !2, 'query'
         14        SEND_VAL_EX                                              '%2Fhtml%2Fbody%2F%2Fdiv%5B%40class%3D%27membersListRow%27%5D'
         15        DO_FCALL                                      0  $15     
         16        ASSIGN                                                   !3, $15
  109    17        TYPE_CHECK                                    2  ~17     !3
         18        BOOL_NOT                                         ~18     ~17
         19      > JMPZ                                                     ~18, ->60
  110    20    > > FE_RESET_R                                       $19     !3, ->59
         21    > > FE_FETCH_R                                               $19, !4, ->59
  111    22    >   INIT_FCALL                                               'trim'
         23        INIT_METHOD_CALL                                         !2, 'query'
         24        SEND_VAL_EX                                              '%2Fspan%5B%40class%3D%27name%27%5D'
         25        SEND_VAR_EX                                              !4
         26        DO_FCALL                                      0  $20     
         27        INIT_METHOD_CALL                                         $20, 'item'
         28        SEND_VAL_EX                                              0
         29        DO_FCALL                                      0  $21     
         30        FETCH_OBJ_R                                      ~22     $21, 'nodeValue'
         31        SEND_VAL                                                 ~22
         32        DO_ICALL                                         $23     
         33        ASSIGN                                                   !5, $23
  112    34        INIT_FCALL                                               'trim'
         35        INIT_METHOD_CALL                                         !2, 'query'
         36        SEND_VAL_EX                                              '%2Fspan%5B%40class%3D%27world%27%5D'
         37        SEND_VAR_EX                                              !4
         38        DO_FCALL                                      0  $25     
         39        INIT_METHOD_CALL                                         $25, 'item'
         40        SEND_VAL_EX                                              0
         41        DO_FCALL                                      0  $26     
         42        FETCH_OBJ_R                                      ~27     $26, 'nodeValue'
         43        SEND_VAL                                                 ~27
         44        DO_ICALL                                         $28     
         45        ASSIGN                                                   !6, $28
  113    46        IS_IDENTICAL                                             !6, 'Offline'
         47      > JMPZ                                                     ~30, ->54
  114    48    >   ROPE_INIT                                     4  ~32     !5
         49        ROPE_ADD                                      1  ~32     ~32, '+is+on+'
         50        ROPE_ADD                                      2  ~32     ~32, !6
         51        ROPE_END                                      3  ~31     ~32, '%0A'
         52        QM_ASSIGN                                        ~34     ~31
         53      > JMP                                                      ->57
  115    54    >   NOP                                                      
         55        FAST_CONCAT                                      ~35     !5, '+is+offline%0A'
         56        QM_ASSIGN                                        ~34     ~35
         57    >   ECHO                                                     ~34
  110    58      > JMP                                                      ->21
         59    >   FE_FREE                                                  $19
  117    60    > > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
164.03 ms | 1404 KiB | 15 Q