3v4l.org

run code in 300+ PHP versions simultaneously
<?php $html = '<table> <tr class="rules-details" style="display: none"> <td colspan="4"> <a href="/serve-scaled-images.html" class="rule-help btn hover-tooltip" data-tooltip-interactive data-tooltip-max-width="450" title="&lt;h4&gt;Serve scaled images&lt;/h4&gt;&lt;p&gt;Serving appropriately-sized images can save many bytes of data and improve the performance of your webpage, especially on low-powered (eg. mobile) devices.&lt;/p&gt;&lt;p class=&quot;rule-help-tooltip-more&quot;&gt;&lt;a href=&quot;/serve-scaled-images.html&quot;&gt;Read more&lt;/a&gt;&lt;/p&gt;"><i class="sprite-question"></i><span class="resp-hidden">What\'s this mean?</span></a> <div> <p>The following images are resized in HTML or CSS. Serving scaled images could save 1.3MiB (45% reduction). <ul> <li><a href="https://www.example.com/Pictures/thumbs/0029.jpg" target="_blank" rel="nofollow noopener noreferrer">https://www.example.com/Pictures/thumbs/0029.jpg</a> is resized in HTML or CSS from 300x623 to 123x200. Serving a scaled image could save 51.3KiB (86% reduction).</li> <li><a href="https://www.example.com/Pictures/thumbs/0133.jpg" target="_blank" rel="nofollow noopener noreferrer">https://www.example.com/Pictures/thumbs/0133.jpg</a> is resized in HTML or CSS from 300x578 to 135x200. Serving a scaled image could save 44.0KiB (84% reduction).</li> <li><a href="https://www.example.com/Pictures/thumbs/0075.jpg" target="_blank" rel="nofollow noopener noreferrer">https://www.example.com/Pictures/thumbs/0075.jpg</a> is resized in HTML or CSS from 300x390 to 176x200. Serving a scaled image could save 43.2KiB (69% reduction).</li> <li><a href="https://www.example.com/Pictures/thumbs/0057.jpg" target="_blank" rel="nofollow noopener noreferrer">https://www.example.com/Pictures/thumbs/0057.jpg</a> is resized in HTML or CSS from 300x436 to 174x200. Serving a scaled image could save 35.0KiB (73% reduction).</li> <li><a href="https://www.example.com/Pictures/thumb/thumb.png" target="_blank" rel="nofollow noopener noreferrer">https://www.example.com/Pictures/thumbs/thumb.png</a> is resized in HTML or CSS from 148x100 to 68x46. Serving a scaled image could save 31.4KiB (78% reduction).</li> <li><a href="https://www.example.com/Pictures/thumb/thumb.png" target="_blank" rel="nofollow noopener noreferrer">https://www.example.com/Pictures/thumbs/thumb.png</a> is resized in HTML or CSS from 148x100 to 68x46. Serving a scaled image could save 30.9KiB (78% reduction).</li> <li><a href="https://www.example.com/Pictures/thumb/thumb.png" target="_blank" rel="nofollow noopener noreferrer">https://www.example.com/Pictures/thumbs/thumb.png</a> is resized in HTML or CSS from 148x100 to 68x46. Serving a scaled image could save 30.7KiB (78% reduction).</li> <li><a href="https://www.example.com/Pictures/thumb/thumb.png" target="_blank" rel="nofollow noopener noreferrer">https://www.example.com/Pictures/thumbs/thumb.png</a> is resized in HTML or CSS from 148x100 to 68x46. Serving a scaled image could save 30.7KiB (78% reduction).</li> <li><a href="https://www.example.com/Pictures/thumbs/0093.jpg" target="_blank" rel="nofollow noopener noreferrer">https://www.example.com/Pictures/thumbs/0093.jpg</a> is resized in HTML or CSS from 300x458 to 138x200. Serving a scaled image could save 28.9KiB (79% reduction).</li> </ul> </p> </div> </td> </tr> </table>'; $dom = new DOMDocument(); libxml_use_internal_errors(true); $dom->loadHTML($html); $xpath = new DOMXPath($dom); $result = []; foreach ($xpath->query('//tr/td/div//ul/li/a') as $a) { $result[] = [$a->nodeValue, preg_match('~to \K\d+x\d+~', $a->parentNode->nodeValue, $m) ? $m[0] : '']; } var_export($result);
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 19, Position 2 = 38
Branch analysis from position: 19
2 jumps found. (Code = 78) Position 1 = 20, Position 2 = 38
Branch analysis from position: 20
2 jumps found. (Code = 43) Position 1 = 30, Position 2 = 33
Branch analysis from position: 30
1 jumps found. (Code = 42) Position 1 = 34
Branch analysis from position: 34
1 jumps found. (Code = 42) Position 1 = 19
Branch analysis from position: 19
Branch analysis from position: 33
1 jumps found. (Code = 42) Position 1 = 19
Branch analysis from position: 19
Branch analysis from position: 38
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 38
filename:       /in/6OeIv
function name:  (null)
number of ops:  43
compiled vars:  !0 = $html, !1 = $dom, !2 = $xpath, !3 = $result, !4 = $a, !5 = $m
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, '%3Ctable%3E%0A++++%3Ctr+class%3D%22rules-details%22+style%3D%22display%3A+none%22%3E%0A++++++++%3Ctd+colspan%3D%224%22%3E%0A++++++++++++%3Ca+href%3D%22%2Fserve-scaled-images.html%22+class%3D%22rule-help+btn+hover-tooltip%22+data-tooltip-interactive+data-tooltip-max-width%3D%22450%22+title%3D%22%26lt%3Bh4%26gt%3BServe+scaled+images%26lt%3B%2Fh4%26gt%3B%26lt%3Bp%26gt%3BServing+appropriately-sized+images+can+save+many+bytes+of+data+and+improve+the+performance+of+your+webpage%2C+especially+on+low-powered+%28eg.+mobile%29+devices.%26lt%3B%2Fp%26gt%3B%26lt%3Bp+class%3D%26quot%3Brule-help-tooltip-more%26quot%3B%26gt%3B%26lt%3Ba+href%3D%26quot%3B%2Fserve-scaled-images.html%26quot%3B%26gt%3BRead+more%26lt%3B%2Fa%26gt%3B%26lt%3B%2Fp%26gt%3B%22%3E%3Ci+class%3D%22sprite-question%22%3E%3C%2Fi%3E%3Cspan+class%3D%22resp-hidden%22%3EWhat%27s+this+mean%3F%3C%2Fspan%3E%3C%2Fa%3E%0A++++++++++++%3Cdiv%3E%0A++++++++++++++++%3Cp%3EThe+following+images+are+resized+in+HTML+or+CSS.+Serving+scaled+images+could+save+1.3MiB+%2845%25+reduction%29.%0A++++++++++++++++++++%3Cul%3E%0A++++++++++++++++++++++++%3Cli%3E%3Ca+href%3D%22https%3A%2F%2Fwww.example.com%2FPictures%2Fthumbs%2F0029.jpg%22+target%3D%22_blank%22+rel%3D%22nofollow+noopener+noreferrer%22%3Ehttps%3A%2F%2Fwww.example.com%2FPictures%2Fthumbs%2F0029.jpg%3C%2Fa%3E+is+resized+in+HTML+or+CSS+from+300x623+to+123x200.+Serving+a+scaled+image+could+save+51.3KiB+%2886%25+reduction%29.%3C%2Fli%3E%0A++++++++++++++++++++++++%3Cli%3E%3Ca+href%3D%22https%3A%2F%2Fwww.example.com%2FPictures%2Fthumbs%2F0133.jpg%22+target%3D%22_blank%22+rel%3D%22nofollow+noopener+noreferrer%22%3Ehttps%3A%2F%2Fwww.example.com%2FPictures%2Fthumbs%2F0133.jpg%3C%2Fa%3E+is+resized+in+HTML+or+CSS+from+300x578+to+135x200.+Serving+a+scaled+image+could+save+44.0KiB+%2884%25+reduction%29.%3C%2Fli%3E%0A++++++++++++++++++++++++%3Cli%3E%3Ca+href%3D%22https%3A%2F%2Fwww.example.com%2FPictures%2Fthumbs%2F0075.jpg%22+target%3D%22_blank%22+rel%3D%22nofollow+noopener+noreferrer%22%3Ehttps%3A%2F%2Fwww.example.com%2FPictures%2Fthumbs%2F0075.jpg%3C%2Fa%3E+is+resized+in+HTML+or+CSS+from+300x390+to+176x200.+Serving+a+scaled+image+could+save+43.2KiB+%2869%25+reduction%29.%3C%2Fli%3E%0A++++++++++++++++++++++++%3Cli%3E%3Ca+href%3D%22https%3A%2F%2Fwww.example.com%2FPictures%2Fthumbs%2F0057.jpg%22+target%3D%22_blank%22+rel%3D%22nofollow+noopener+noreferrer%22%3Ehttps%3A%2F%2Fwww.example.com%2FPictures%2Fthumbs%2F0057.jpg%3C%2Fa%3E+is+resized+in+HTML+or+CSS+from+300x436+to+174x200.+Serving+a+scaled+image+could+save+35.0KiB+%2873%25+reduction%29.%3C%2Fli%3E%0A++++++++++++++++++++++++%3Cli%3E%3Ca+href%3D%22https%3A%2F%2Fwww.example.com%2FPictures%2Fthumb%2Fthumb.png%22+target%3D%22_blank%22+rel%3D%22nofollow+noopener+noreferrer%22%3Ehttps%3A%2F%2Fwww.example.com%2FPictures%2Fthumbs%2Fthumb.png%3C%2Fa%3E+is+resized+in+HTML+or+CSS+from+148x100+to+68x46.+Serving+a+scaled+image+could+save+31.4KiB+%2878%25+reduction%29.%3C%2Fli%3E%0A++++++++++++++++++++++++%3Cli%3E%3Ca+href%3D%22https%3A%2F%2Fwww.example.com%2FPictures%2Fthumb%2Fthumb.png%22+target%3D%22_blank%22+rel%3D%22nofollow+noopener+noreferrer%22%3Ehttps%3A%2F%2Fwww.example.com%2FPictures%2Fthumbs%2Fthumb.png%3C%2Fa%3E+is+resized+in+HTML+or+CSS+from+148x100+to+68x46.+Serving+a+scaled+image+could+save+30.9KiB+%2878%25+reduction%29.%3C%2Fli%3E%0A++++++++++++++++++++++++%3Cli%3E%3Ca+href%3D%22https%3A%2F%2Fwww.example.com%2FPictures%2Fthumb%2Fthumb.png%22+target%3D%22_blank%22+rel%3D%22nofollow+noopener+noreferrer%22%3Ehttps%3A%2F%2Fwww.example.com%2FPictures%2Fthumbs%2Fthumb.png%3C%2Fa%3E+is+resized+in+HTML+or+CSS+from+148x100+to+68x46.+Serving+a+scaled+image+could+save+30.7KiB+%2878%25+reduction%29.%3C%2Fli%3E%0A++++++++++++++++++++++++%3Cli%3E%3Ca+href%3D%22https%3A%2F%2Fwww.example.com%2FPictures%2Fthumb%2Fthumb.png%22+target%3D%22_blank%22+rel%3D%22nofollow+noopener+noreferrer%22%3Ehttps%3A%2F%2Fwww.example.com%2FPictures%2Fthumbs%2Fthumb.png%3C%2Fa%3E+is+resized+in+HTML+or+CSS+from+148x100+to+68x46.+Serving+a+scaled+image+could+save+30.7KiB+%2878%25+reduction%29.%3C%2Fli%3E%0A++++++++++++++++++++++++%3Cli%3E%3Ca+href%3D%22https%3A%2F%2Fwww.example.com%2FPictures%2Fthumbs%2F0093.jpg%22+target%3D%22_blank%22+rel%3D%22nofollow+noopener+noreferrer%22%3Ehttps%3A%2F%2Fwww.example.com%2FPictures%2Fthumbs%2F0093.jpg%3C%2Fa%3E+is+resized+in+HTML+or+CSS+from+300x458+to+138x200.+Serving+a+scaled+image+could+save+28.9KiB+%2879%25+reduction%29.%3C%2Fli%3E%0A++++++++++++++++++++%3C%2Ful%3E%0A++++++++++++++++%3C%2Fp%3E%0A++++++++++++%3C%2Fdiv%3E%0A++++++++%3C%2Ftd%3E%0A++++%3C%2Ftr%3E%0A%3C%2Ftable%3E'
   26     1        NEW                                              $7      'DOMDocument'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !1, $7
   27     4        INIT_FCALL                                               'libxml_use_internal_errors'
          5        SEND_VAL                                                 <true>
          6        DO_ICALL                                                 
   28     7        INIT_METHOD_CALL                                         !1, 'loadHTML'
          8        SEND_VAR_EX                                              !0
          9        DO_FCALL                                      0          
   29    10        NEW                                              $12     'DOMXPath'
         11        SEND_VAR_EX                                              !1
         12        DO_FCALL                                      0          
         13        ASSIGN                                                   !2, $12
   30    14        ASSIGN                                                   !3, <array>
   31    15        INIT_METHOD_CALL                                         !2, 'query'
         16        SEND_VAL_EX                                              '%2F%2Ftr%2Ftd%2Fdiv%2F%2Ful%2Fli%2Fa'
         17        DO_FCALL                                      0  $16     
         18      > FE_RESET_R                                       $17     $16, ->38
         19    > > FE_FETCH_R                                               $17, !4, ->38
   32    20    >   FETCH_OBJ_R                                      ~19     !4, 'nodeValue'
         21        INIT_ARRAY                                       ~20     ~19
         22        INIT_FCALL                                               'preg_match'
         23        SEND_VAL                                                 '%7Eto+%5CK%5Cd%2Bx%5Cd%2B%7E'
         24        FETCH_OBJ_R                                      ~21     !4, 'parentNode'
         25        FETCH_OBJ_R                                      ~22     ~21, 'nodeValue'
         26        SEND_VAL                                                 ~22
         27        SEND_REF                                                 !5
         28        DO_ICALL                                         $23     
         29      > JMPZ                                                     $23, ->33
         30    >   FETCH_DIM_R                                      ~24     !5, 0
         31        QM_ASSIGN                                        ~25     ~24
         32      > JMP                                                      ->34
         33    >   QM_ASSIGN                                        ~25     ''
         34    >   ADD_ARRAY_ELEMENT                                ~20     ~25
         35        ASSIGN_DIM                                               !3
         36        OP_DATA                                                  ~20
   31    37      > JMP                                                      ->19
         38    >   FE_FREE                                                  $17
   34    39        INIT_FCALL                                               'var_export'
         40        SEND_VAR                                                 !3
         41        DO_ICALL                                                 
         42      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
159.61 ms | 1404 KiB | 19 Q