3v4l.org

run code in 300+ PHP versions simultaneously
<?php $html = <<<HTML <ul class="list-unstyled"> <li> <svg role="icon" class="svg-icon iconLocation" width="18" height="18" viewBox="0 0 18 18"><path d="M8.1 17.698S2 9.906 2 6.382C2 2.857 4.91 0 8.5 0S15 2.857 15 6.382c0 3.524-6.098 11.313-6.098 11.313-.221.292-.58.292-.801.003zm.4-8.448a2.75 2.75 0 1 0 0-5.5 2.75 2.75 0 0 0 0 5.5z"/></svg> NULL </li> <li> <svg role="icon" class="svg-icon iconTwitter" width="18" height="18" viewBox="0 0 18 18"><path fill="#2AA3EF" d="M17 4.038a6.62 6.62 0 0 1-1.885.517 3.299 3.299 0 0 0 1.443-1.816c-.634.37-1.337.64-2.085.79a3.282 3.282 0 0 0-5.593 2.99 9.307 9.307 0 0 1-6.766-3.42A3.222 3.222 0 0 0 1.67 4.75c0 1.14.58 2.143 1.46 2.732a3.278 3.278 0 0 1-1.487-.41v.04c0 1.59 1.13 2.918 2.633 3.22a3.336 3.336 0 0 1-1.475.056 3.29 3.29 0 0 0 3.07 2.28 6.578 6.578 0 0 1-4.85 1.359 9.332 9.332 0 0 0 5.04 1.474c6.04 0 9.34-5 9.34-9.33 0-.14 0-.28-.01-.42a6.63 6.63 0 0 0 1.64-1.7L17 4.038z"/></svg> <a href="https://twitter.com/PHPeeHaa" rel="me" class="url">PHPeeHaa</a> </li> <li> <svg role="icon" class="svg-icon iconGitHub" width="18" height="18" viewBox="0 0 18 18"><path d="M9 1C4.58 1 1 4.58 1 9c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 17 9c0-4.42-3.58-8-8-8z"/></svg> <a href="https://github.com/PeeHaa" rel="me" class="url">PeeHaa</a> </li> <li> <svg role="icon" class="svg-icon iconLink" width="18" height="18" viewBox="0 0 18 18"><path d="M2.9 9c0-1.16.94-2.1 2.1-2.1h3V5H5C2.79 5 1 6.79 1 9s1.79 4 4 4h3v-1.9H5A2.1 2.1 0 0 1 2.9 9zM13 5h-3v1.9h3a2.1 2.1 0 1 1 0 4.2h-3V13h3c2.21 0 4-1.79 4-4s-1.79-4-4-4zm-7 5h6V8H6v2z"/></svg> <a href="http://pieterhordijk.com" rel="me noreferrer" class="url">pieterhordijk.com</a> </li> <li> <svg role="icon" class="svg-icon iconHistory" width="19" height="18" viewBox="0 0 19 18"><path d="M3 9a8 8 0 1 1 3.732 6.768l1.463-1.463A6 6 0 1 0 5 9h3l-4 4-4-4h3zm7-4l1.013.007L11 9.351l3.225 2.106-.607.925L10 10V5z"/></svg> Member for <span title="2010-11-15 19:35:13Z">6 years, 6 months</span> </li> <li> <svg role="icon" class="svg-icon iconEye" width="18" height="18" viewBox="0 0 18 18"><path d="M8.999 3C14.279 3 18 8.5 18 8.5S14.28 14 8.999 14C3.719 14-.002 8.5-.002 8.5s3.72-5.5 9-5.5zM9 12.75a4.299 4.299 0 0 0 4.25-4.25A4.25 4.25 0 1 0 9 12.75zm0-2a2.25 2.25 0 1 1 0-4.5 2.25 2.25 0 0 1 0 4.5z"/></svg> 13,641 profile views </li> <li> <svg role="icon" class="svg-icon iconClock" width="18" height="18" viewBox="0 0 18 18"><path d="M9 17A8 8 0 1 1 9 1a8 8 0 0 1 0 16zm0-2A6 6 0 1 0 9 3a6 6 0 0 0 0 12zM8 5l1.013.007L9 9.351l3.225 2.106-.607.925L8 10V5z"/></svg> Last seen <span title="2017-06-05 01:30:57Z" class="relativetime">10 hours ago</span> </li> </ul> HTML; $doc = new DOMDocument; @$doc->loadHTML($html); $xpath = new DOMXpath($doc); $search = [ 'github' => 'iconGitHub', 'twitter' => 'iconTwitter', ]; $result = []; foreach ($search as $key => $className) { $nodeList = $xpath->query("//li[svg[contains(concat(' ', normalize-space(@class), ' '), ' {$className} ')]]/a"); if ($nodeList->length === 0) { continue; } $a = $nodeList->item(0); $result[$key] = [ 'username' => $a->textContent, 'url' => $a->getAttribute('href'), ]; } var_dump($result);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 16, Position 2 = 42
Branch analysis from position: 16
2 jumps found. (Code = 78) Position 1 = 17, Position 2 = 42
Branch analysis from position: 17
2 jumps found. (Code = 43) Position 1 = 28, Position 2 = 29
Branch analysis from position: 28
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 29
1 jumps found. (Code = 42) Position 1 = 16
Branch analysis from position: 16
Branch analysis from position: 42
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 42
filename:       /in/6mlll
function name:  (null)
number of ops:  47
compiled vars:  !0 = $html, !1 = $doc, !2 = $xpath, !3 = $search, !4 = $result, !5 = $className, !6 = $key, !7 = $nodeList, !8 = $a
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '++++++++%3Cul+class%3D%22list-unstyled%22%3E%0A++++++++++++++++%3Cli%3E%0A++++++++++++++++++++%3Csvg+role%3D%22icon%22+class%3D%22svg-icon+iconLocation%22+width%3D%2218%22+height%3D%2218%22+viewBox%3D%220+0+18+18%22%3E%3Cpath+d%3D%22M8.1+17.698S2+9.906+2+6.382C2+2.857+4.91+0+8.5+0S15+2.857+15+6.382c0+3.524-6.098+11.313-6.098+11.313-.221.292-.58.292-.801.003zm.4-8.448a2.75+2.75+0+1+0+0-5.5+2.75+2.75+0+0+0+0+5.5z%22%2F%3E%3C%2Fsvg%3E%0A++++++++++++++++++++NULL%0A++++++++++++++++%3C%2Fli%3E%0A++++++++++++++++++++++++++++%3Cli%3E%0A++++++++++++++++++++%3Csvg+role%3D%22icon%22+class%3D%22svg-icon+iconTwitter%22+width%3D%2218%22+height%3D%2218%22+viewBox%3D%220+0+18+18%22%3E%3Cpath+fill%3D%22%232AA3EF%22+d%3D%22M17+4.038a6.62+6.62+0+0+1-1.885.517+3.299+3.299+0+0+0+1.443-1.816c-.634.37-1.337.64-2.085.79a3.282+3.282+0+0+0-5.593+2.99+9.307+9.307+0+0+1-6.766-3.42A3.222+3.222+0+0+0+1.67+4.75c0+1.14.58+2.143+1.46+2.732a3.278+3.278+0+0+1-1.487-.41v.04c0+1.59+1.13+2.918+2.633+3.22a3.336+3.336+0+0+1-1.475.056+3.29+3.29+0+0+0+3.07+2.28+6.578+6.578+0+0+1-4.85+1.359+9.332+9.332+0+0+0+5.04+1.474c6.04+0+9.34-5+9.34-9.33+0-.14+0-.28-.01-.42a6.63+6.63+0+0+0+1.64-1.7L17+4.038z%22%2F%3E%3C%2Fsvg%3E%0A++++++++++++++++++++%3Ca+href%3D%22https%3A%2F%2Ftwitter.com%2FPHPeeHaa%22+rel%3D%22me%22+class%3D%22url%22%3EPHPeeHaa%3C%2Fa%3E%0A++++++++++++++++%3C%2Fli%3E%0A++++++++++++++++++++++++++++%3Cli%3E%0A++++++++++++++++++++%3Csvg+role%3D%22icon%22+class%3D%22svg-icon+iconGitHub%22+width%3D%2218%22+height%3D%2218%22+viewBox%3D%220+0+18+18%22%3E%3Cpath+d%3D%22M9+1C4.58+1+1+4.58+1+9c0+3.54+2.29+6.53+5.47+7.59.4.07.55-.17.55-.38+0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01+1.08.58+1.23.82.72+1.21+1.87.87+2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95+0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12+0+0+.67-.21+2.2.82.64-.18+1.32-.27+2-.27.68+0+1.36.09+2+.27+1.53-1.04+2.2-.82+2.2-.82.44+1.1.16+1.92.08+2.12.51.56.82+1.27.82+2.15+0+3.07-1.87+3.75-3.65+3.95.29.25.54.73.54+1.48+0+1.07-.01+1.93-.01+2.2+0+.21.15.46.55.38A8.013+8.013+0+0+0+17+9c0-4.42-3.58-8-8-8z%22%2F%3E%3C%2Fsvg%3E%0A++++++++++++++++++++%3Ca+href%3D%22https%3A%2F%2Fgithub.com%2FPeeHaa%22+rel%3D%22me%22+class%3D%22url%22%3EPeeHaa%3C%2Fa%3E%0A++++++++++++++++%3C%2Fli%3E%0A++++++++++++++++++++++++++++%3Cli%3E%0A++++++++++++++++++++%3Csvg+role%3D%22icon%22+class%3D%22svg-icon+iconLink%22+width%3D%2218%22+height%3D%2218%22+viewBox%3D%220+0+18+18%22%3E%3Cpath+d%3D%22M2.9+9c0-1.16.94-2.1+2.1-2.1h3V5H5C2.79+5+1+6.79+1+9s1.79+4+4+4h3v-1.9H5A2.1+2.1+0+0+1+2.9+9zM13+5h-3v1.9h3a2.1+2.1+0+1+1+0+4.2h-3V13h3c2.21+0+4-1.79+4-4s-1.79-4-4-4zm-7+5h6V8H6v2z%22%2F%3E%3C%2Fsvg%3E%0A++++++++++++++++++++%3Ca+href%3D%22http%3A%2F%2Fpieterhordijk.com%22+rel%3D%22me+noreferrer%22+class%3D%22url%22%3Epieterhordijk.com%3C%2Fa%3E%0A++++++++++++++++%3C%2Fli%3E%0A++++++++++++++++++++++++%3Cli%3E%0A++++++++++++++++%3Csvg+role%3D%22icon%22+class%3D%22svg-icon+iconHistory%22+width%3D%2219%22+height%3D%2218%22+viewBox%3D%220+0+19+18%22%3E%3Cpath+d%3D%22M3+9a8+8+0+1+1+3.732+6.768l1.463-1.463A6+6+0+1+0+5+9h3l-4+4-4-4h3zm7-4l1.013.007L11+9.351l3.225+2.106-.607.925L10+10V5z%22%2F%3E%3C%2Fsvg%3E%0AMember+for+%3Cspan+title%3D%222010-11-15+19%3A35%3A13Z%22%3E6+years%2C+6+months%3C%2Fspan%3E%0A++++++++++++%3C%2Fli%3E%0A++++++++++++%3Cli%3E%0A++++++++++++++++%3Csvg+role%3D%22icon%22+class%3D%22svg-icon+iconEye%22+width%3D%2218%22+height%3D%2218%22+viewBox%3D%220+0+18+18%22%3E%3Cpath+d%3D%22M8.999+3C14.279+3+18+8.5+18+8.5S14.28+14+8.999+14C3.719+14-.002+8.5-.002+8.5s3.72-5.5+9-5.5zM9+12.75a4.299+4.299+0+0+0+4.25-4.25A4.25+4.25+0+1+0+9+12.75zm0-2a2.25+2.25+0+1+1+0-4.5+2.25+2.25+0+0+1+0+4.5z%22%2F%3E%3C%2Fsvg%3E%0A++++++++++++++++13%2C641+profile+views%0A++++++++++++%3C%2Fli%3E%0A++++++++++++%3Cli%3E%0A++++++++++++++++%3Csvg+role%3D%22icon%22+class%3D%22svg-icon+iconClock%22+width%3D%2218%22+height%3D%2218%22+viewBox%3D%220+0+18+18%22%3E%3Cpath+d%3D%22M9+17A8+8+0+1+1+9+1a8+8+0+0+1+0+16zm0-2A6+6+0+1+0+9+3a6+6+0+0+0+0+12zM8+5l1.013.007L9+9.351l3.225+2.106-.607.925L8+10V5z%22%2F%3E%3C%2Fsvg%3E%0A++++++++++++++++Last+seen+%3Cspan+title%3D%222017-06-05+01%3A30%3A57Z%22+class%3D%22relativetime%22%3E10+hours+ago%3C%2Fspan%3E%0A++++++++++++%3C%2Fli%3E%0A++++++++%3C%2Ful%3E'
   36     1        NEW                                              $10     'DOMDocument'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !1, $10
   37     4        BEGIN_SILENCE                                    ~13     
          5        INIT_METHOD_CALL                                         !1, 'loadHTML'
          6        SEND_VAR_EX                                              !0
          7        DO_FCALL                                      0          
          8        END_SILENCE                                              ~13
   38     9        NEW                                              $15     'DOMXpath'
         10        SEND_VAR_EX                                              !1
         11        DO_FCALL                                      0          
         12        ASSIGN                                                   !2, $15
   40    13        ASSIGN                                                   !3, <array>
   45    14        ASSIGN                                                   !4, <array>
   47    15      > FE_RESET_R                                       $20     !3, ->42
         16    > > FE_FETCH_R                                       ~21     $20, !5, ->42
         17    >   ASSIGN                                                   !6, ~21
   48    18        INIT_METHOD_CALL                                         !2, 'query'
         19        ROPE_INIT                                     3  ~24     '%2F%2Fli%5Bsvg%5Bcontains%28concat%28%27+%27%2C+normalize-space%28%40class%29%2C+%27+%27%29%2C+%27+'
         20        ROPE_ADD                                      1  ~24     ~24, !5
         21        ROPE_END                                      2  ~23     ~24, '+%27%29%5D%5D%2Fa'
         22        SEND_VAL_EX                                              ~23
         23        DO_FCALL                                      0  $26     
         24        ASSIGN                                                   !7, $26
   50    25        FETCH_OBJ_R                                      ~28     !7, 'length'
         26        IS_IDENTICAL                                             ~28, 0
         27      > JMPZ                                                     ~29, ->29
   51    28    > > JMP                                                      ->16
   54    29    >   INIT_METHOD_CALL                                         !7, 'item'
         30        SEND_VAL_EX                                              0
         31        DO_FCALL                                      0  $30     
         32        ASSIGN                                                   !8, $30
   57    33        FETCH_OBJ_R                                      ~33     !8, 'textContent'
         34        INIT_ARRAY                                       ~34     ~33, 'username'
   58    35        INIT_METHOD_CALL                                         !8, 'getAttribute'
         36        SEND_VAL_EX                                              'href'
         37        DO_FCALL                                      0  $35     
         38        ADD_ARRAY_ELEMENT                                ~34     $35, 'url'
   56    39        ASSIGN_DIM                                               !4, !6
   58    40        OP_DATA                                                  ~34
   47    41      > JMP                                                      ->16
         42    >   FE_FREE                                                  $20
   62    43        INIT_FCALL                                               'var_dump'
         44        SEND_VAR                                                 !4
         45        DO_ICALL                                                 
         46      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
153.6 ms | 1019 KiB | 14 Q