3v4l.org

run code in 300+ PHP versions simultaneously
<?php $mysql_result[0]['id']="1"; $mysql_result[0]['address']="www.example.com/page1"; $mysql_result[0]['title']="Page 1"; $mysql_result[0]['content']="The quick dog jumps over the lazy dog."; $mysql_result[0]['image']="image1.jpg"; $mysql_result[1]['id']="2"; $mysql_result[1]['address']="www.example.com/page2"; $mysql_result[1]['title']="Page 2"; $mysql_result[1]['content']="The best thing about morning is breakfast."; $mysql_result[1]['image']="image2.jpg"; $mysql_result[2]['id']="3"; $mysql_result[2]['address']="www.example.com/page3"; $mysql_result[2]['title']="Page 3"; $mysql_result[2]['content']="Hotdogs are great ballpark food."; $mysql_result[2]['image']="image3.jpg"; // instead of the above initialization which i made by hand for demonstration, // you need to initialize the variable $mysql_result with data // from your DB like this // // $inc = 0; // while($results = $result->fetch_array(MYSQLI_ASSOC)) // { // $mysql_result[$inc]=$results; // $inc++; // } $query="dog"; $chars_to_show_before = 10; // ...1234567890dog $chars_to_show_after = 10; // dog1234567890... foreach($mysql_result as $results) { $content = str_replace($query,"my_un1qu3_r3pl4c3m3nt_".$query,$results['content']); $occurences = explode("my_un1qu3_r3pl4c3m3nt_",$content); $position_in_original_content = 0; foreach($occurences as $an_occurence) { if (strpos($an_occurence,$query) !== false) { $content=$an_occurence; echo '<li class="media"> <a class="pull-left" href="'.$results['address'].'"> <img class="media-object thumbnail" src="'.$results['image'].'" style="height:100px !important"> </a> <div class="media-body"> <h4 class="media-heading"><a href="'.$results['address'].'">'.$results['title'].'</a></h4> <p>...'.str_replace($query,'<strong>'.$query.'</strong>', substr($results['content'],max(0,($position_in_original_content-$chars_to_show_before)),strlen(strlen($query))+$chars_to_show_after+$chars_to_show_before)).'...</p> </div> </li>'; } $position_in_original_content = $position_in_original_content + strlen($an_occurence); } } ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 49, Position 2 = 116
Branch analysis from position: 49
2 jumps found. (Code = 78) Position 1 = 50, Position 2 = 116
Branch analysis from position: 50
2 jumps found. (Code = 77) Position 1 = 65, Position 2 = 114
Branch analysis from position: 65
2 jumps found. (Code = 78) Position 1 = 66, Position 2 = 114
Branch analysis from position: 66
2 jumps found. (Code = 43) Position 1 = 72, Position 2 = 110
Branch analysis from position: 72
1 jumps found. (Code = 42) Position 1 = 65
Branch analysis from position: 65
Branch analysis from position: 110
Branch analysis from position: 114
1 jumps found. (Code = 42) Position 1 = 49
Branch analysis from position: 49
Branch analysis from position: 114
Branch analysis from position: 116
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 116
filename:       /in/3FPQE
function name:  (null)
number of ops:  118
compiled vars:  !0 = $mysql_result, !1 = $query, !2 = $chars_to_show_before, !3 = $chars_to_show_after, !4 = $results, !5 = $content, !6 = $occurences, !7 = $position_in_original_content, !8 = $an_occurence
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   FETCH_DIM_W                                      $9      !0, 0
          1        ASSIGN_DIM                                               $9, 'id'
          2        OP_DATA                                                  '1'
    4     3        FETCH_DIM_W                                      $11     !0, 0
          4        ASSIGN_DIM                                               $11, 'address'
          5        OP_DATA                                                  'www.example.com%2Fpage1'
    5     6        FETCH_DIM_W                                      $13     !0, 0
          7        ASSIGN_DIM                                               $13, 'title'
          8        OP_DATA                                                  'Page+1'
    6     9        FETCH_DIM_W                                      $15     !0, 0
         10        ASSIGN_DIM                                               $15, 'content'
         11        OP_DATA                                                  'The+quick+dog+jumps+over+the+lazy+dog.'
    7    12        FETCH_DIM_W                                      $17     !0, 0
         13        ASSIGN_DIM                                               $17, 'image'
         14        OP_DATA                                                  'image1.jpg'
    9    15        FETCH_DIM_W                                      $19     !0, 1
         16        ASSIGN_DIM                                               $19, 'id'
         17        OP_DATA                                                  '2'
   10    18        FETCH_DIM_W                                      $21     !0, 1
         19        ASSIGN_DIM                                               $21, 'address'
         20        OP_DATA                                                  'www.example.com%2Fpage2'
   11    21        FETCH_DIM_W                                      $23     !0, 1
         22        ASSIGN_DIM                                               $23, 'title'
         23        OP_DATA                                                  'Page+2'
   12    24        FETCH_DIM_W                                      $25     !0, 1
         25        ASSIGN_DIM                                               $25, 'content'
         26        OP_DATA                                                  'The+best+thing+about+morning+is+breakfast.'
   13    27        FETCH_DIM_W                                      $27     !0, 1
         28        ASSIGN_DIM                                               $27, 'image'
         29        OP_DATA                                                  'image2.jpg'
   15    30        FETCH_DIM_W                                      $29     !0, 2
         31        ASSIGN_DIM                                               $29, 'id'
         32        OP_DATA                                                  '3'
   16    33        FETCH_DIM_W                                      $31     !0, 2
         34        ASSIGN_DIM                                               $31, 'address'
         35        OP_DATA                                                  'www.example.com%2Fpage3'
   17    36        FETCH_DIM_W                                      $33     !0, 2
         37        ASSIGN_DIM                                               $33, 'title'
         38        OP_DATA                                                  'Page+3'
   18    39        FETCH_DIM_W                                      $35     !0, 2
         40        ASSIGN_DIM                                               $35, 'content'
         41        OP_DATA                                                  'Hotdogs+are+great+ballpark+food.'
   19    42        FETCH_DIM_W                                      $37     !0, 2
         43        ASSIGN_DIM                                               $37, 'image'
         44        OP_DATA                                                  'image3.jpg'
   33    45        ASSIGN                                                   !1, 'dog'
   35    46        ASSIGN                                                   !2, 10
   36    47        ASSIGN                                                   !3, 10
   38    48      > FE_RESET_R                                       $42     !0, ->116
         49    > > FE_FETCH_R                                               $42, !4, ->116
   41    50    >   INIT_FCALL                                               'str_replace'
         51        SEND_VAR                                                 !1
         52        CONCAT                                           ~43     'my_un1qu3_r3pl4c3m3nt_', !1
         53        SEND_VAL                                                 ~43
         54        FETCH_DIM_R                                      ~44     !4, 'content'
         55        SEND_VAL                                                 ~44
         56        DO_ICALL                                         $45     
         57        ASSIGN                                                   !5, $45
   43    58        INIT_FCALL                                               'explode'
         59        SEND_VAL                                                 'my_un1qu3_r3pl4c3m3nt_'
         60        SEND_VAR                                                 !5
         61        DO_ICALL                                         $47     
         62        ASSIGN                                                   !6, $47
   45    63        ASSIGN                                                   !7, 0
   47    64      > FE_RESET_R                                       $50     !6, ->114
         65    > > FE_FETCH_R                                               $50, !8, ->114
   50    66    >   INIT_FCALL                                               'strpos'
         67        SEND_VAR                                                 !8
         68        SEND_VAR                                                 !1
         69        DO_ICALL                                         $51     
         70        TYPE_CHECK                                  1018          $51
         71      > JMPZ                                                     ~52, ->110
   52    72    >   ASSIGN                                                   !5, !8
   55    73        FETCH_DIM_R                                      ~54     !4, 'address'
         74        CONCAT                                           ~55     '%3Cli+class%3D%22media%22%3E%0A++++++++++++%3Ca+class%3D%22pull-left%22+href%3D%22', ~54
         75        CONCAT                                           ~56     ~55, '%22%3E%0A++++++++++++%3Cimg+class%3D%22media-object+thumbnail%22+src%3D%22'
   56    76        FETCH_DIM_R                                      ~57     !4, 'image'
         77        CONCAT                                           ~58     ~56, ~57
         78        CONCAT                                           ~59     ~58, '%22+style%3D%22height%3A100px+%21important%22%3E%0A++++++++++++%3C%2Fa%3E%0A++++++++++++%3Cdiv+class%3D%22media-body%22%3E%0A++++++++++++++%3Ch4+class%3D%22media-heading%22%3E%3Ca+href%3D%22'
   59    79        FETCH_DIM_R                                      ~60     !4, 'address'
         80        CONCAT                                           ~61     ~59, ~60
         81        CONCAT                                           ~62     ~61, '%22%3E'
         82        FETCH_DIM_R                                      ~63     !4, 'title'
         83        CONCAT                                           ~64     ~62, ~63
         84        CONCAT                                           ~65     ~64, '%3C%2Fa%3E%3C%2Fh4%3E%0A++++++++++++++%3Cp%3E...'
   60    85        INIT_FCALL                                               'str_replace'
         86        SEND_VAR                                                 !1
         87        CONCAT                                           ~66     '%3Cstrong%3E', !1
         88        CONCAT                                           ~67     ~66, '%3C%2Fstrong%3E'
         89        SEND_VAL                                                 ~67
         90        INIT_FCALL                                               'substr'
         91        FETCH_DIM_R                                      ~68     !4, 'content'
         92        SEND_VAL                                                 ~68
         93        INIT_FCALL                                               'max'
         94        SEND_VAL                                                 0
         95        SUB                                              ~69     !7, !2
         96        SEND_VAL                                                 ~69
         97        DO_ICALL                                         $70     
         98        SEND_VAR                                                 $70
         99        STRLEN                                           ~71     !1
        100        STRLEN                                           ~72     ~71
        101        ADD                                              ~73     ~72, !3
        102        ADD                                              ~74     ~73, !2
        103        SEND_VAL                                                 ~74
        104        DO_ICALL                                         $75     
        105        SEND_VAR                                                 $75
        106        DO_ICALL                                         $76     
        107        CONCAT                                           ~77     ~65, $76
        108        CONCAT                                           ~78     ~77, '...%3C%2Fp%3E%0A++++++++++++%3C%2Fdiv%3E%0A+++++++++++%3C%2Fli%3E'
        109        ECHO                                                     ~78
   65   110    >   STRLEN                                           ~79     !8
        111        ADD                                              ~80     !7, ~79
        112        ASSIGN                                                   !7, ~80
   47   113      > JMP                                                      ->65
        114    >   FE_FREE                                                  $50
   38   115      > JMP                                                      ->49
        116    >   FE_FREE                                                  $42
   71   117      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
168.47 ms | 949 KiB | 24 Q