3v4l.org

run code in 300+ PHP versions simultaneously
<?php $matches = array(); $attachment = array(); $buildSrc = array(); $content = '<p><img src="images/Selection_004.png" alt="" width="199" height="120" /><img src="images/Selection_005.png" alt="" width="199" height="120" /></p> <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec vitae diam turpis. Integer fermentum metus lorem, faucibus tincidunt magna vestibulum eget. Curabitur laoreet rhoncus tellus et imperdiet. Duis dignissim, arcu eget ultrices imperdiet, urna arcu finibus enim, quis mattis nisl mauris eget erat. Etiam lectus lacus, faucibus quis erat sed, sollicitudin aliquet mi. Fusce tempus dui urna. Donec tristique, augue at molestie malesuada, nisl enim malesuada diam, at tincidunt sapien metus id enim. Fusce risus ipsum, molestie malesuada suscipit ut, imperdiet ac libero. Quisque fermentum purus quam, nec dapibus dolor tempus tempus. Vivamus dolor dui, tincidunt eu ornare eu, sollicitudin ac risus. Ut consectetur ut enim at maximus. Phasellus consequat pretium arcu. Aenean gravida finibus vestibulum. Donec mollis augue felis, a euismod quam mattis blandit. Cras auctor nisi a venenatis viverra. Morbi libero magna, feugiat in libero non, ornare tempus mi.</p> <p> </p>'; if ( preg_match_all('#<(img|a)(.*?)(src|href)="(.*?)"(.*?)>#s', $content, $matches, PREG_SET_ORDER) > 0 ) { if ( is_array($matches) ) { foreach ($matches as $match ) { $filename = $match[4]; array_push($attachment,$filename); array_push($buildSrc,'documents/20143/0/'.basename($filename)); foreach($attachment as $attach){ $newcontent = str_replace($attachment,$buildSrc,$content); } } } } print_r($attachment); var_dump($newcontent); ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 42
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 42
Branch analysis from position: 14
2 jumps found. (Code = 77) Position 1 = 15, Position 2 = 41
Branch analysis from position: 15
2 jumps found. (Code = 78) Position 1 = 16, Position 2 = 41
Branch analysis from position: 16
2 jumps found. (Code = 77) Position 1 = 31, Position 2 = 39
Branch analysis from position: 31
2 jumps found. (Code = 78) Position 1 = 32, Position 2 = 39
Branch analysis from position: 32
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
Branch analysis from position: 39
1 jumps found. (Code = 42) Position 1 = 15
Branch analysis from position: 15
Branch analysis from position: 39
Branch analysis from position: 41
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 41
Branch analysis from position: 42
Branch analysis from position: 42
filename:       /in/bTSgD
function name:  (null)
number of ops:  49
compiled vars:  !0 = $matches, !1 = $attachment, !2 = $buildSrc, !3 = $content, !4 = $match, !5 = $filename, !6 = $attach, !7 = $newcontent
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, <array>
    4     1        ASSIGN                                                   !1, <array>
    5     2        ASSIGN                                                   !2, <array>
    6     3        ASSIGN                                                   !3, '%3Cp%3E%3Cimg+src%3D%22images%2FSelection_004.png%22+alt%3D%22%22+width%3D%22199%22+height%3D%22120%22+%2F%3E%3Cimg+src%3D%22images%2FSelection_005.png%22+alt%3D%22%22+width%3D%22199%22+height%3D%22120%22+%2F%3E%3C%2Fp%3E%0A%3Cp%3ELorem+ipsum+dolor+sit+amet%2C+consectetur+adipiscing+elit.+Donec+vitae+diam+turpis.+Integer+fermentum+metus+lorem%2C+faucibus+tincidunt+magna+vestibulum+eget.+Curabitur+laoreet+rhoncus+tellus+et+imperdiet.+Duis+dignissim%2C+arcu+eget+ultrices+imperdiet%2C+urna+arcu+finibus+enim%2C+quis+mattis+nisl+mauris+eget+erat.+Etiam+lectus+lacus%2C+faucibus+quis+erat+sed%2C+sollicitudin+aliquet+mi.+Fusce+tempus+dui+urna.+Donec+tristique%2C+augue+at+molestie+malesuada%2C+nisl+enim+malesuada+diam%2C+at+tincidunt+sapien+metus+id+enim.+Fusce+risus+ipsum%2C+molestie+malesuada+suscipit+ut%2C+imperdiet+ac+libero.+Quisque+fermentum+purus+quam%2C+nec+dapibus+dolor+tempus+tempus.+Vivamus+dolor+dui%2C+tincidunt+eu+ornare+eu%2C+sollicitudin+ac+risus.+Ut+consectetur+ut+enim+at+maximus.+Phasellus+consequat+pretium+arcu.+Aenean+gravida+finibus+vestibulum.+Donec+mollis+augue+felis%2C+a+euismod+quam+mattis+blandit.+Cras+auctor+nisi+a+venenatis+viverra.+Morbi+libero+magna%2C+feugiat+in+libero+non%2C+ornare+tempus+mi.%3C%2Fp%3E%0A%3Cp%3E%C2%A0%3C%2Fp%3E'
   12     4        INIT_FCALL                                               'preg_match_all'
          5        SEND_VAL                                                 '%23%3C%28img%7Ca%29%28.%2A%3F%29%28src%7Chref%29%3D%22%28.%2A%3F%29%22%28.%2A%3F%29%3E%23s'
          6        SEND_VAR                                                 !3
          7        SEND_REF                                                 !0
          8        SEND_VAL                                                 2
          9        DO_ICALL                                         $12     
         10        IS_SMALLER                                               0, $12
         11      > JMPZ                                                     ~13, ->42
   13    12    >   TYPE_CHECK                                  128          !0
         13      > JMPZ                                                     ~14, ->42
   14    14    > > FE_RESET_R                                       $15     !0, ->41
         15    > > FE_FETCH_R                                               $15, !4, ->41
   15    16    >   FETCH_DIM_R                                      ~16     !4, 4
         17        ASSIGN                                                   !5, ~16
   16    18        INIT_FCALL                                               'array_push'
         19        SEND_REF                                                 !1
         20        SEND_VAR                                                 !5
         21        DO_ICALL                                                 
   17    22        INIT_FCALL                                               'array_push'
         23        SEND_REF                                                 !2
         24        INIT_FCALL                                               'basename'
         25        SEND_VAR                                                 !5
         26        DO_ICALL                                         $19     
         27        CONCAT                                           ~20     'documents%2F20143%2F0%2F', $19
         28        SEND_VAL                                                 ~20
         29        DO_ICALL                                                 
   18    30      > FE_RESET_R                                       $22     !1, ->39
         31    > > FE_FETCH_R                                               $22, !6, ->39
   20    32    >   INIT_FCALL                                               'str_replace'
         33        SEND_VAR                                                 !1
         34        SEND_VAR                                                 !2
         35        SEND_VAR                                                 !3
         36        DO_ICALL                                         $23     
         37        ASSIGN                                                   !7, $23
   18    38      > JMP                                                      ->31
         39    >   FE_FREE                                                  $22
   14    40      > JMP                                                      ->15
         41    >   FE_FREE                                                  $15
   25    42    >   INIT_FCALL                                               'print_r'
         43        SEND_VAR                                                 !1
         44        DO_ICALL                                                 
   28    45        INIT_FCALL                                               'var_dump'
         46        SEND_VAR                                                 !7
         47        DO_ICALL                                                 
   29    48      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
278.55 ms | 1021 KiB | 19 Q