3v4l.org

run code in 300+ PHP versions simultaneously
<?php $html = '<ol class="items-1">/*---*/</ol> <ol class="items-2">/*---*/</ol> <ol class="items-3"> <li> <div class="title">first Title</div> <a href="[URL]"> <span class="tags">[TAGS]</span> <span class="desc">[DESC]</span> /*---*/ </a> </li> <li> <div class="title">secondTitle</div> <a href="www.example.com"> <span class="tags">nice, bright, whatever</span> <span class="desc">[DESC]</span> /*---*/ </a> </li> </ol> '; $dom = new DOMDocument(); $dom->loadHTML($html); $ol = $dom->getElementsByTagName("ol")->item(2); //for items-3 class $li = $ol->getElementsByTagName("li"); foreach ($li as $element) { $title = $element->getElementsByTagName('div')->item(0)->nodeValue; $url = $element->getElementsByTagName('a')->item(0)->getAttribute('href'); $tags = $element->getElementsByTagName('span')->item(0)->nodeValue; $desc = $element->getElementsByTagName('span')->item(1)->nodeValue; echo "Title: $title, url: $url, tags: $tags <br>\n"; } ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 19, Position 2 = 63
Branch analysis from position: 19
2 jumps found. (Code = 78) Position 1 = 20, Position 2 = 63
Branch analysis from position: 20
1 jumps found. (Code = 42) Position 1 = 19
Branch analysis from position: 19
Branch analysis from position: 63
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 63
filename:       /in/6hcOt
function name:  (null)
number of ops:  65
compiled vars:  !0 = $html, !1 = $dom, !2 = $ol, !3 = $li, !4 = $element, !5 = $title, !6 = $url, !7 = $tags, !8 = $desc
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, '%3Col+class%3D%22items-1%22%3E%2F%2A---%2A%2F%3C%2Fol%3E%0A++++%3Col+class%3D%22items-2%22%3E%2F%2A---%2A%2F%3C%2Fol%3E%0A++++%3Col+class%3D%22items-3%22%3E%0A++++++%3Cli%3E%0A++++++++%3Cdiv+class%3D%22title%22%3Efirst+Title%3C%2Fdiv%3E%0A++++++++%3Ca+href%3D%22%5BURL%5D%22%3E%0A++++++++++%3Cspan+class%3D%22tags%22%3E%5BTAGS%5D%3C%2Fspan%3E%0A++++++++++%3Cspan+class%3D%22desc%22%3E%5BDESC%5D%3C%2Fspan%3E%0A++++++++++%2F%2A---%2A%2F%0A++++++++%3C%2Fa%3E%0A++++++%3C%2Fli%3E%0A++++++%3Cli%3E%0A++++++++%3Cdiv+class%3D%22title%22%3EsecondTitle%3C%2Fdiv%3E%0A++++++++%3Ca+href%3D%22www.example.com%22%3E%0A++++++++++%3Cspan+class%3D%22tags%22%3Enice%2C+bright%2C+whatever%3C%2Fspan%3E%0A++++++++++%3Cspan+class%3D%22desc%22%3E%5BDESC%5D%3C%2Fspan%3E%0A++++++++++%2F%2A---%2A%2F%0A++++++++%3C%2Fa%3E%0A++++++%3C%2Fli%3E+%3C%2Fol%3E%0A'
   23     1        NEW                                              $10     'DOMDocument'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !1, $10
   24     4        INIT_METHOD_CALL                                         !1, 'loadHTML'
          5        SEND_VAR_EX                                              !0
          6        DO_FCALL                                      0          
   25     7        INIT_METHOD_CALL                                         !1, 'getElementsByTagName'
          8        SEND_VAL_EX                                              'ol'
          9        DO_FCALL                                      0  $14     
         10        INIT_METHOD_CALL                                         $14, 'item'
         11        SEND_VAL_EX                                              2
         12        DO_FCALL                                      0  $15     
         13        ASSIGN                                                   !2, $15
   26    14        INIT_METHOD_CALL                                         !2, 'getElementsByTagName'
         15        SEND_VAL_EX                                              'li'
         16        DO_FCALL                                      0  $17     
         17        ASSIGN                                                   !3, $17
   27    18      > FE_RESET_R                                       $19     !3, ->63
         19    > > FE_FETCH_R                                               $19, !4, ->63
   28    20    >   INIT_METHOD_CALL                                         !4, 'getElementsByTagName'
         21        SEND_VAL_EX                                              'div'
         22        DO_FCALL                                      0  $20     
         23        INIT_METHOD_CALL                                         $20, 'item'
         24        SEND_VAL_EX                                              0
         25        DO_FCALL                                      0  $21     
         26        FETCH_OBJ_R                                      ~22     $21, 'nodeValue'
         27        ASSIGN                                                   !5, ~22
   29    28        INIT_METHOD_CALL                                         !4, 'getElementsByTagName'
         29        SEND_VAL_EX                                              'a'
         30        DO_FCALL                                      0  $24     
         31        INIT_METHOD_CALL                                         $24, 'item'
         32        SEND_VAL_EX                                              0
         33        DO_FCALL                                      0  $25     
         34        INIT_METHOD_CALL                                         $25, 'getAttribute'
         35        SEND_VAL_EX                                              'href'
         36        DO_FCALL                                      0  $26     
         37        ASSIGN                                                   !6, $26
   30    38        INIT_METHOD_CALL                                         !4, 'getElementsByTagName'
         39        SEND_VAL_EX                                              'span'
         40        DO_FCALL                                      0  $28     
         41        INIT_METHOD_CALL                                         $28, 'item'
         42        SEND_VAL_EX                                              0
         43        DO_FCALL                                      0  $29     
         44        FETCH_OBJ_R                                      ~30     $29, 'nodeValue'
         45        ASSIGN                                                   !7, ~30
   31    46        INIT_METHOD_CALL                                         !4, 'getElementsByTagName'
         47        SEND_VAL_EX                                              'span'
         48        DO_FCALL                                      0  $32     
         49        INIT_METHOD_CALL                                         $32, 'item'
         50        SEND_VAL_EX                                              1
         51        DO_FCALL                                      0  $33     
         52        FETCH_OBJ_R                                      ~34     $33, 'nodeValue'
         53        ASSIGN                                                   !8, ~34
   32    54        ROPE_INIT                                     7  ~37     'Title%3A+'
         55        ROPE_ADD                                      1  ~37     ~37, !5
         56        ROPE_ADD                                      2  ~37     ~37, '%2C+url%3A+'
         57        ROPE_ADD                                      3  ~37     ~37, !6
         58        ROPE_ADD                                      4  ~37     ~37, '%2C+tags%3A+'
         59        ROPE_ADD                                      5  ~37     ~37, !7
         60        ROPE_END                                      6  ~36     ~37, '+%3Cbr%3E%0A'
         61        ECHO                                                     ~36
   27    62      > JMP                                                      ->19
         63    >   FE_FREE                                                  $19
   36    64      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
215.12 ms | 1002 KiB | 13 Q