3v4l.org

run code in 300+ PHP versions simultaneously
<?php class BannerCreator{ public $im; private function createSpacedString(){ $s = ""; for($i=0;$i<$num;$i++){ $s = $s . " "; } return $s; } public function __construct() { $this->$im = imagecreate(912, 384); //set a background imagefill($this->$im,0,0,imagecolorallocate($this->$im, 14, 14, 14)); } public function getPicture(){ return imagepng($this->$im); } public function fillImage($date,$numberOfAdmins,$numberOfGuests){ $text_color = imagecolorallocate($this->$im, 20, 160, 20); $text_color2 = imagecolorallocate($this->$im, 160, 20, 20); //Prepare the string $text = "100110010010010101000011000100100011110100010000110111010111 110100110100100011111001001011100110010111100000000101011 010111111011011111011100001001100111100000110111001101110 010110101000110001110110000000001011011001011001011010011 000011101111000111001110010101111000010111111111001100101 110110001000001100010101001000000000111001011001100011110 000100000011011000001101000111011101110010100011000111100 111010000111110110111000111101010101110011010000100001100 011000000110111010000011110111000011010000000101101100100 001111100111010101000111110010001100000000100000011111001 100110010010010101000011000100100011110100010000110111111 110110001000001100010101001000000000111001011001100011110 110100110100100011111001001011100110010111100000000101011 010100100011011001001101000111011101110010100011000111100 "; $textar = explode("\n",$text); $newlinestr = ""; //Load the font $font = '/var/www/html/php/test/Lucida Console.ttf'; //Generate the strings $adminstr = "Admins 0x".dechex($numberOfAdmins); $userstr = "Guests 0x".dechex($numberOfGuests); for($i=0;$i<count($textar);$i++){ switch($i){ case 2: //print a clock: $onezro = "011111011011100011110100011011"; $padstr = createSpacedString(strlen($onezro)); $onezroend = createSpacedString(strlen($date.$padstr)).substr("0110100011001101010101",0,57-strlen($date.$padstr)); imagettftext($this->$im, 20, 0, 0, 20, $text_color, $font, $newlinestr.$onezro); imagettftext($this->$im, 20, 0, 0, 20, $text_color2, $font, $newlinestr.$padstr.$date); imagettftext($this->$im, 20, 0, 0, 20, $text_color, $font, $newlinestr.$onezroend); break; case 9: $start = "100110010"; $padstr = createSpacedString(strlen($start)); $end = createSpacedString(strlen($adminstr.$padstr)).substr("010101000111110010001100000000100000011111001",0,57-strlen($adminstr.$padstr)); imagettftext($this->$im, 20, 0, 0, 20, $text_color, $font, $newlinestr.$start); imagettftext($this->$im, 20, 0, 0, 20, $text_color2, $font, $newlinestr.$padstr.$adminstr); imagettftext($this->$im, 20, 0, 0, 20, $text_color, $font, $newlinestr.$end); break; case 10: $start = "100110010"; $padstr = createSpacedString(strlen($start)); $end = createSpacedString(strlen($userstr.$padstr)).substr("010010101000011000100100011110100010000110111111",0,57-strlen($userstr.$padstr)); imagettftext($this->$im, 20, 0, 0, 20, $text_color, $font, $newlinestr.$start); imagettftext($this->$im, 20, 0, 0, 20, $text_color2, $font, $newlinestr.$padstr.$userstr); imagettftext($this->$im, 20, 0, 0, 20, $text_color, $font, $newlinestr.$end); break; default: imagettftext($this->$im, 20, 0, 0, 20, $text_color, $font, $newlinestr.$textar[$i]); }//End of switch $newlinestr = $newlinestr . "\n"; }//End of for loop }//EnfillImage() }//End offillImage() //Output error_reporting(E_ALL); header("Content-type: image/png"); $banner = new BannerCreator(); $banner->fillImage(date("l jS F H:i"),1,2); echo $banner->getPicture(); ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/niBol
function name:  (null)
number of ops:  21
compiled vars:  !0 = $banner
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   88     0  E >   INIT_FCALL                                               'error_reporting'
          1        SEND_VAL                                                 32767
          2        DO_ICALL                                                 
   90     3        INIT_FCALL                                               'header'
          4        SEND_VAL                                                 'Content-type%3A+image%2Fpng'
          5        DO_ICALL                                                 
   91     6        NEW                                              $3      'BannerCreator'
          7        DO_FCALL                                      0          
          8        ASSIGN                                                   !0, $3
   92     9        INIT_METHOD_CALL                                         !0, 'fillImage'
         10        INIT_FCALL                                               'date'
         11        SEND_VAL                                                 'l+jS+F+H%3Ai'
         12        DO_ICALL                                         $6      
         13        SEND_VAR_NO_REF_EX                                       $6
         14        SEND_VAL_EX                                              1
         15        SEND_VAL_EX                                              2
         16        DO_FCALL                                      0          
   93    17        INIT_METHOD_CALL                                         !0, 'getPicture'
         18        DO_FCALL                                      0  $8      
         19        ECHO                                                     $8
   94    20      > RETURN                                                   1

Class BannerCreator:
Function createspacedstring:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 6
Branch analysis from position: 6
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 3
2 jumps found. (Code = 44) Position 1 = 8, Position 2 = 3
Branch analysis from position: 8
Branch analysis from position: 3
filename:       /in/niBol
function name:  createSpacedString
number of ops:  10
compiled vars:  !0 = $s, !1 = $i, !2 = $num
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    6     0  E >   ASSIGN                                                   !0, ''
    7     1        ASSIGN                                                   !1, 0
          2      > JMP                                                      ->6
    8     3    >   CONCAT                                           ~5      !0, '+'
          4        ASSIGN                                                   !0, ~5
    7     5        PRE_INC                                                  !1
          6    >   IS_SMALLER                                               !1, !2
          7      > JMPNZ                                                    ~8, ->3
   10     8    > > RETURN                                                   !0
   11     9*     > RETURN                                                   null

End of function createspacedstring

Function __construct:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/niBol
function name:  __construct
number of ops:  23
compiled vars:  !0 = $im
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   13     0  E >   INIT_FCALL_BY_NAME                                       'imagecreate'
          1        SEND_VAL_EX                                              912
          2        SEND_VAL_EX                                              384
          3        DO_FCALL                                      0  $2      
          4        ASSIGN_OBJ                                               !0
          5        OP_DATA                                                  $2
   15     6        INIT_FCALL_BY_NAME                                       'imagefill'
          7        CHECK_FUNC_ARG                                           
          8        FETCH_OBJ_FUNC_ARG                               $3      !0
          9        SEND_FUNC_ARG                                            $3
         10        SEND_VAL_EX                                              0
         11        SEND_VAL_EX                                              0
         12        INIT_FCALL_BY_NAME                                       'imagecolorallocate'
         13        CHECK_FUNC_ARG                                           
         14        FETCH_OBJ_FUNC_ARG                               $4      !0
         15        SEND_FUNC_ARG                                            $4
         16        SEND_VAL_EX                                              14
         17        SEND_VAL_EX                                              14
         18        SEND_VAL_EX                                              14
         19        DO_FCALL                                      0  $5      
         20        SEND_VAR_NO_REF_EX                                       $5
         21        DO_FCALL                                      0          
   16    22      > RETURN                                                   null

End of function __construct

Function getpicture:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/niBol
function name:  getPicture
number of ops:  7
compiled vars:  !0 = $im
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   18     0  E >   INIT_FCALL_BY_NAME                                       'imagepng'
          1        CHECK_FUNC_ARG                                           
          2        FETCH_OBJ_FUNC_ARG                               $1      !0
          3        SEND_FUNC_ARG                                            $1
          4        DO_FCALL                                      0  $2      
          5      > RETURN                                                   $2
   19     6*     > RETURN                                                   null

End of function getpicture

Function fillimage:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 251
Branch analysis from position: 251
2 jumps found. (Code = 44) Position 1 = 254, Position 2 = 41
Branch analysis from position: 254
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 41
2 jumps found. (Code = 44) Position 1 = 43, Position 2 = 48
Branch analysis from position: 43
2 jumps found. (Code = 44) Position 1 = 45, Position 2 = 110
Branch analysis from position: 45
2 jumps found. (Code = 44) Position 1 = 47, Position 2 = 172
Branch analysis from position: 47
1 jumps found. (Code = 42) Position 1 = 234
Branch analysis from position: 234
2 jumps found. (Code = 44) Position 1 = 254, Position 2 = 41
Branch analysis from position: 254
Branch analysis from position: 41
Branch analysis from position: 172
1 jumps found. (Code = 42) Position 1 = 248
Branch analysis from position: 248
Branch analysis from position: 110
1 jumps found. (Code = 42) Position 1 = 248
Branch analysis from position: 248
Branch analysis from position: 48
1 jumps found. (Code = 42) Position 1 = 248
Branch analysis from position: 248
filename:       /in/niBol
function name:  fillImage
number of ops:  255
compiled vars:  !0 = $date, !1 = $numberOfAdmins, !2 = $numberOfGuests, !3 = $text_color, !4 = $im, !5 = $text_color2, !6 = $text, !7 = $textar, !8 = $newlinestr, !9 = $font, !10 = $adminstr, !11 = $userstr, !12 = $i, !13 = $onezro, !14 = $padstr, !15 = $onezroend, !16 = $start, !17 = $end
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   20     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
   21     3        INIT_FCALL_BY_NAME                                       'imagecolorallocate'
          4        CHECK_FUNC_ARG                                           
          5        FETCH_OBJ_FUNC_ARG                               $18     !4
          6        SEND_FUNC_ARG                                            $18
          7        SEND_VAL_EX                                              20
          8        SEND_VAL_EX                                              160
          9        SEND_VAL_EX                                              20
         10        DO_FCALL                                      0  $19     
         11        ASSIGN                                                   !3, $19
   22    12        INIT_FCALL_BY_NAME                                       'imagecolorallocate'
         13        CHECK_FUNC_ARG                                           
         14        FETCH_OBJ_FUNC_ARG                               $21     !4
         15        SEND_FUNC_ARG                                            $21
         16        SEND_VAL_EX                                              160
         17        SEND_VAL_EX                                              20
         18        SEND_VAL_EX                                              20
         19        DO_FCALL                                      0  $22     
         20        ASSIGN                                                   !5, $22
   25    21        ASSIGN                                                   !6, '100110010010010101000011000100100011110100010000110111010111%0A110100110100100011111001001011100110010111100000000101011%0A010111111011011111011100001001100111100000110111001101110%0A010110101000110001110110000000001011011001011001011010011%0A000011101111000111001110010101111000010111111111001100101%0A110110001000001100010101001000000000111001011001100011110%0A000100000011011000001101000111011101110010100011000111100%0A111010000111110110111000111101010101110011010000100001100%0A011000000110111010000011110111000011010000000101101100100%0A001111100111010101000111110010001100000000100000011111001%0A100110010010010101000011000100100011110100010000110111111%0A110110001000001100010101001000000000111001011001100011110%0A110100110100100011111001001011100110010111100000000101011%0A010100100011011001001101000111011101110010100011000111100%0A'
   41    22        INIT_FCALL                                               'explode'
         23        SEND_VAL                                                 '%0A'
         24        SEND_VAR                                                 !6
         25        DO_ICALL                                         $25     
         26        ASSIGN                                                   !7, $25
   42    27        ASSIGN                                                   !8, ''
   44    28        ASSIGN                                                   !9, '%2Fvar%2Fwww%2Fhtml%2Fphp%2Ftest%2FLucida+Console.ttf'
   47    29        INIT_FCALL                                               'dechex'
         30        SEND_VAR                                                 !1
         31        DO_ICALL                                         $29     
         32        CONCAT                                           ~30     'Admins+0x', $29
         33        ASSIGN                                                   !10, ~30
   48    34        INIT_FCALL                                               'dechex'
         35        SEND_VAR                                                 !2
         36        DO_ICALL                                         $32     
         37        CONCAT                                           ~33     'Guests+0x', $32
         38        ASSIGN                                                   !11, ~33
   50    39        ASSIGN                                                   !12, 0
         40      > JMP                                                      ->251
   52    41    >   IS_EQUAL                                                 !12, 2
         42      > JMPNZ                                                    ~36, ->48
   62    43    >   IS_EQUAL                                                 !12, 9
         44      > JMPNZ                                                    ~36, ->110
   71    45    >   IS_EQUAL                                                 !12, 10
         46      > JMPNZ                                                    ~36, ->172
         47    > > JMP                                                      ->234
   54    48    >   ASSIGN                                                   !13, '011111011011100011110100011011'
   55    49        INIT_FCALL_BY_NAME                                       'createSpacedString'
         50        STRLEN                                           ~38     !13
         51        SEND_VAL_EX                                              ~38
         52        DO_FCALL                                      0  $39     
         53        ASSIGN                                                   !14, $39
   56    54        INIT_FCALL_BY_NAME                                       'createSpacedString'
         55        CONCAT                                           ~41     !0, !14
         56        STRLEN                                           ~42     ~41
         57        SEND_VAL_EX                                              ~42
         58        DO_FCALL                                      0  $43     
         59        INIT_FCALL                                               'substr'
         60        SEND_VAL                                                 '0110100011001101010101'
         61        SEND_VAL                                                 0
         62        CONCAT                                           ~44     !0, !14
         63        STRLEN                                           ~45     ~44
         64        SUB                                              ~46     57, ~45
         65        SEND_VAL                                                 ~46
         66        DO_ICALL                                         $47     
         67        CONCAT                                           ~48     $43, $47
         68        ASSIGN                                                   !15, ~48
   57    69        INIT_FCALL_BY_NAME                                       'imagettftext'
         70        CHECK_FUNC_ARG                                           
         71        FETCH_OBJ_FUNC_ARG                               $50     !4
         72        SEND_FUNC_ARG                                            $50
         73        SEND_VAL_EX                                              20
         74        SEND_VAL_EX                                              0
         75        SEND_VAL_EX                                              0
         76        SEND_VAL_EX                                              20
         77        SEND_VAR_EX                                              !3
         78        SEND_VAR_EX                                              !9
         79        CONCAT                                           ~51     !8, !13
         80        SEND_VAL_EX                                              ~51
         81        DO_FCALL                                      0          
   58    82        INIT_FCALL_BY_NAME                                       'imagettftext'
         83        CHECK_FUNC_ARG                                           
         84        FETCH_OBJ_FUNC_ARG                               $53     !4
         85        SEND_FUNC_ARG                                            $53
         86        SEND_VAL_EX                                              20
         87        SEND_VAL_EX                                              0
         88        SEND_VAL_EX                                              0
         89        SEND_VAL_EX                                              20
         90        SEND_VAR_EX                                              !5
         91        SEND_VAR_EX                                              !9
         92        CONCAT                                           ~54     !8, !14
         93        CONCAT                                           ~55     ~54, !0
         94        SEND_VAL_EX                                              ~55
         95        DO_FCALL                                      0          
   59    96        INIT_FCALL_BY_NAME                                       'imagettftext'
         97        CHECK_FUNC_ARG                                           
         98        FETCH_OBJ_FUNC_ARG                               $57     !4
         99        SEND_FUNC_ARG                                            $57
        100        SEND_VAL_EX                                              20
        101        SEND_VAL_EX                                              0
        102        SEND_VAL_EX                                              0
        103        SEND_VAL_EX                                              20
        104        SEND_VAR_EX                                              !3
        105        SEND_VAR_EX                                              !9
        106        CONCAT                                           ~58     !8, !15
        107        SEND_VAL_EX                                              ~58
        108        DO_FCALL                                      0          
   60   109      > JMP                                                      ->248
   63   110    >   ASSIGN                                                   !16, '100110010'
   64   111        INIT_FCALL_BY_NAME                                       'createSpacedString'
        112        STRLEN                                           ~61     !16
        113        SEND_VAL_EX                                              ~61
        114        DO_FCALL                                      0  $62     
        115        ASSIGN                                                   !14, $62
   65   116        INIT_FCALL_BY_NAME                                       'createSpacedString'
        117        CONCAT                                           ~64     !10, !14
        118        STRLEN                                           ~65     ~64
        119        SEND_VAL_EX                                              ~65
        120        DO_FCALL                                      0  $66     
        121        INIT_FCALL                                               'substr'
        122        SEND_VAL                                                 '010101000111110010001100000000100000011111001'
        123        SEND_VAL                                                 0
        124        CONCAT                                           ~67     !10, !14
        125        STRLEN                                           ~68     ~67
        126        SUB                                              ~69     57, ~68
        127        SEND_VAL                                                 ~69
        128        DO_ICALL                                         $70     
        129        CONCAT                                           ~71     $66, $70
        130        ASSIGN                                                   !17, ~71
   66   131        INIT_FCALL_BY_NAME                                       'imagettftext'
        132        CHECK_FUNC_ARG                                           
        133        FETCH_OBJ_FUNC_ARG                               $73     !4
        134        SEND_FUNC_ARG                                            $73
        135        SEND_VAL_EX                                              20
        136        SEND_VAL_EX                                              0
        137        SEND_VAL_EX                                              0
        138        SEND_VAL_EX                                              20
        139        SEND_VAR_EX                                              !3
        140        SEND_VAR_EX                                              !9
        141        CONCAT                                           ~74     !8, !16
        142        SEND_VAL_EX                                              ~74
        143        DO_FCALL                                      0          
   67   144        INIT_FCALL_BY_NAME                                       'imagettftext'
        145        CHECK_FUNC_ARG                                           
        146        FETCH_OBJ_FUNC_ARG                               $76     !4
        147        SEND_FUNC_ARG                                            $76
        148        SEND_VAL_EX                                              20
        149        SEND_VAL_EX                                              0
        150        SEND_VAL_EX                                              0
        151        SEND_VAL_EX                                              20
        152        SEND_VAR_EX                                              !5
        153        SEND_VAR_EX                                              !9
        154        CONCAT                                           ~77     !8, !14
        155        CONCAT                                           ~78     ~77, !10
        156        SEND_VAL_EX                                              ~78
        157        DO_FCALL                                      0          
   68   158        INIT_FCALL_BY_NAME                                       'imagettftext'
        159        CHECK_FUNC_ARG                                           
        160        FETCH_OBJ_FUNC_ARG                               $80     !4
        161        SEND_FUNC_ARG                                            $80
        162        SEND_VAL_EX                                              20
        163        SEND_VAL_EX                                              0
        164        SEND_VAL_EX                                              0
        165        SEND_VAL_EX                                              20
        166        SEND_VAR_EX                                              !3
        167        SEND_VAR_EX                                              !9
        168        CONCAT                                           ~81     !8, !17
        169        SEND_VAL_EX                                              ~81
        170        DO_FCALL                                      0          
   69   171      > JMP                                                      ->248
   72   172    >   ASSIGN                                                   !16, '100110010'
   73   173        INIT_FCALL_BY_NAME                                       'createSpacedString'
        174        STRLEN                                           ~84     !16
        175        SEND_VAL_EX                                              ~84
        176        DO_FCALL                                      0  $85     
        177        ASSIGN                                                   !14, $85
   74   178        INIT_FCALL_BY_NAME                                       'createSpacedString'
        179        CONCAT                                           ~87     !11, !14
        180        STRLEN                                           ~88     ~87
        181        SEND_VAL_EX                                              ~88
        182        DO_FCALL                                      0  $89     
        183        INIT_FCALL                                               'substr'
        184        SEND_VAL                                                 '010010101000011000100100011110100010000110111111'
        185        SEND_VAL                                                 0
        186        CONCAT                                           ~90     !11, !14
        187        STRLEN                                           ~91     ~90
        188        SUB                                              ~92     57, ~91
        189        SEND_VAL                                                 ~92
        190        DO_ICALL                                         $93     
        191        CONCAT                                           ~94     $89, $93
        192        ASSIGN                                                   !17, ~94
   75   193        INIT_FCALL_BY_NAME                                       'imagettftext'
        194        CHECK_FUNC_ARG                                           
        195        FETCH_OBJ_FUNC_ARG                               $96     !4
        196        SEND_FUNC_ARG                                            $96
        197        SEND_VAL_EX                                              20
        198        SEND_VAL_EX                                              0
        199        SEND_VAL_EX                                              0
        200        SEND_VAL_EX                                              20
        201        SEND_VAR_EX                                              !3
        202        SEND_VAR_EX                                              !9
        203        CONCAT                                           ~97     !8, !16
        204        SEND_VAL_EX                                              ~97
        205        DO_FCALL                                      0          
   76   206        INIT_FCALL_BY_NAME                                       'imagettftext'
        207        CHECK_FUNC_ARG                                           
        208        FETCH_OBJ_FUNC_ARG                               $99     !4
        209        SEND_FUNC_ARG                                            $99
        210        SEND_VAL_EX                                              20
        211        SEND_VAL_EX                                              0
        212        SEND_VAL_EX                                              0
        213        SEND_VAL_EX                                              20
        214        SEND_VAR_EX                                              !5
        215        SEND_VAR_EX                                              !9
        216        CONCAT                                           ~100    !8, !14
        217        CONCAT                                           ~101    ~100, !11
        218        SEND_VAL_EX                                              ~101
        219        DO_FCALL                                      0          
   77   220        INIT_FCALL_BY_NAME                                       'imagettftext'
        221        CHECK_FUNC_ARG                                           
        222        FETCH_OBJ_FUNC_ARG                               $103    !4
        223        SEND_FUNC_ARG                                            $103
        224        SEND_VAL_EX                                              20
        225        SEND_VAL_EX                                              0
        226        SEND_VAL_EX                                              0
        227        SEND_VAL_EX                                              20
        228        SEND_VAR_EX                                              !3
        229        SEND_VAR_EX                                              !9
        230        CONCAT                                           ~104    !8, !17
        231        SEND_VAL_EX                                              ~104
        232        DO_FCALL                                      0          
   78   233      > JMP                                                      ->248
   80   234    >   INIT_FCALL_BY_NAME                                       'imagettftext'
        235        CHECK_FUNC_ARG                                           
        236        FETCH_OBJ_FUNC_ARG                               $106    !4
        237        SEND_FUNC_ARG                                            $106
        238        SEND_VAL_EX                                              20
        239        SEND_VAL_EX                                              0
        240        SEND_VAL_EX                                              0
        241        SEND_VAL_EX                                              20
        242        SEND_VAR_EX                                              !3
        243        SEND_VAR_EX                                              !9
        244        FETCH_DIM_R                                      ~107    !7, !12
        245        CONCAT                                           ~108    !8, ~107
        246        SEND_VAL_EX                                              ~108
        247        DO_FCALL                                      0          
   82   248    >   CONCAT                                           ~110    !8, '%0A'
        249        ASSIGN                                                   !8, ~110
   50   250        PRE_INC                                                  !12
        251    >   COUNT                                            ~113    !7
        252        IS_SMALLER                                               !12, ~113
        253      > JMPNZ                                                    ~114, ->41
   84   254    > > RETURN                                                   null

End of function fillimage

End of class BannerCreator.

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
169.76 ms | 1416 KiB | 25 Q