3v4l.org

run code in 300+ PHP versions simultaneously
<?php function checkisbn($isbn) { $isbn10 = ereg_replace("[^0-9X]","",$isbn); $checkdigit = 11 - ( ( 10 * substr($isbn10,0,1) + 9 * substr($isbn10,1,1) + 8 * substr($isbn10,2,1) + 7 * substr($isbn10,3,1) + 6 * substr($isbn10,4,1) + 5 * substr($isbn10,5,1) + 4 * substr($isbn10,6,1) + 3 * substr($isbn10,7,1) + 2 * substr($isbn10,8,1) ) % 11); if ( $checkdigit == 10 ) $checkdigit = "X"; if ( $checkdigit == 11 ) $checkdigit = 0; if ( $checkdigit == substr($isbn10,9,1) ) { return true; } else { return false; } } if(checkisbn($isbn = $_GET['isbn'])) { header("Location: http://ad.zanox.com/ppc/?22806504C1206851698T&ULP=".$_GET['isbn']); } else { die('Fehlerhafte ISBN'); } ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 7, Position 2 = 14
Branch analysis from position: 7
1 jumps found. (Code = 42) Position 1 = 15
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 14
1 jumps found. (Code = 79) Position 1 = -2
filename:       /in/aD2WN
function name:  (null)
number of ops:  16
compiled vars:  !0 = $isbn
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   14     0  E >   INIT_FCALL                                               'checkisbn'
          1        FETCH_R                      global              ~1      '_GET'
          2        FETCH_DIM_R                                      ~2      ~1, 'isbn'
          3        ASSIGN                                           ~3      !0, ~2
          4        SEND_VAL                                                 ~3
          5        DO_FCALL                                      0  $4      
          6      > JMPZ                                                     $4, ->14
   15     7    >   INIT_FCALL                                               'header'
          8        FETCH_R                      global              ~5      '_GET'
          9        FETCH_DIM_R                                      ~6      ~5, 'isbn'
         10        CONCAT                                           ~7      'Location%3A+http%3A%2F%2Fad.zanox.com%2Fppc%2F%3F22806504C1206851698T%26ULP%3D', ~6
         11        SEND_VAL                                                 ~7
         12        DO_ICALL                                                 
         13      > JMP                                                      ->15
   17    14    > > EXIT                                                     'Fehlerhafte+ISBN'
   19    15    > > RETURN                                                   1

Function checkisbn:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 74, Position 2 = 75
Branch analysis from position: 74
2 jumps found. (Code = 43) Position 1 = 77, Position 2 = 78
Branch analysis from position: 77
2 jumps found. (Code = 43) Position 1 = 85, Position 2 = 87
Branch analysis from position: 85
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 87
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 78
Branch analysis from position: 75
filename:       /in/aD2WN
function name:  checkisbn
number of ops:  89
compiled vars:  !0 = $isbn, !1 = $isbn10, !2 = $checkdigit
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   RECV                                             !0      
    3     1        INIT_FCALL_BY_NAME                                       'ereg_replace'
          2        SEND_VAL_EX                                              '%5B%5E0-9X%5D'
          3        SEND_VAL_EX                                              ''
          4        SEND_VAR_EX                                              !0
          5        DO_FCALL                                      0  $3      
          6        ASSIGN                                                   !1, $3
    4     7        INIT_FCALL                                               'substr'
          8        SEND_VAR                                                 !1
          9        SEND_VAL                                                 0
         10        SEND_VAL                                                 1
         11        DO_ICALL                                         $5      
         12        MUL                                              ~6      $5, 10
         13        INIT_FCALL                                               'substr'
         14        SEND_VAR                                                 !1
         15        SEND_VAL                                                 1
         16        SEND_VAL                                                 1
         17        DO_ICALL                                         $7      
         18        MUL                                              ~8      $7, 9
         19        ADD                                              ~9      ~6, ~8
         20        INIT_FCALL                                               'substr'
         21        SEND_VAR                                                 !1
         22        SEND_VAL                                                 2
         23        SEND_VAL                                                 1
         24        DO_ICALL                                         $10     
         25        MUL                                              ~11     $10, 8
         26        ADD                                              ~12     ~9, ~11
         27        INIT_FCALL                                               'substr'
         28        SEND_VAR                                                 !1
         29        SEND_VAL                                                 3
         30        SEND_VAL                                                 1
         31        DO_ICALL                                         $13     
         32        MUL                                              ~14     $13, 7
         33        ADD                                              ~15     ~12, ~14
         34        INIT_FCALL                                               'substr'
         35        SEND_VAR                                                 !1
         36        SEND_VAL                                                 4
         37        SEND_VAL                                                 1
         38        DO_ICALL                                         $16     
         39        MUL                                              ~17     $16, 6
         40        ADD                                              ~18     ~15, ~17
         41        INIT_FCALL                                               'substr'
         42        SEND_VAR                                                 !1
         43        SEND_VAL                                                 5
         44        SEND_VAL                                                 1
         45        DO_ICALL                                         $19     
         46        MUL                                              ~20     $19, 5
         47        ADD                                              ~21     ~18, ~20
         48        INIT_FCALL                                               'substr'
         49        SEND_VAR                                                 !1
         50        SEND_VAL                                                 6
         51        SEND_VAL                                                 1
         52        DO_ICALL                                         $22     
         53        MUL                                              ~23     $22, 4
         54        ADD                                              ~24     ~21, ~23
         55        INIT_FCALL                                               'substr'
         56        SEND_VAR                                                 !1
         57        SEND_VAL                                                 7
         58        SEND_VAL                                                 1
         59        DO_ICALL                                         $25     
         60        MUL                                              ~26     $25, 3
         61        ADD                                              ~27     ~24, ~26
         62        INIT_FCALL                                               'substr'
         63        SEND_VAR                                                 !1
         64        SEND_VAL                                                 8
         65        SEND_VAL                                                 1
         66        DO_ICALL                                         $28     
         67        MUL                                              ~29     $28, 2
         68        ADD                                              ~30     ~27, ~29
         69        MOD                                              ~31     ~30, 11
         70        SUB                                              ~32     11, ~31
         71        ASSIGN                                                   !2, ~32
    5    72        IS_EQUAL                                                 !2, 10
         73      > JMPZ                                                     ~34, ->75
         74    >   ASSIGN                                                   !2, 'X'
    6    75    >   IS_EQUAL                                                 !2, 11
         76      > JMPZ                                                     ~36, ->78
         77    >   ASSIGN                                                   !2, 0
    7    78    >   INIT_FCALL                                               'substr'
         79        SEND_VAR                                                 !1
         80        SEND_VAL                                                 9
         81        SEND_VAL                                                 1
         82        DO_ICALL                                         $38     
         83        IS_EQUAL                                                 !2, $38
         84      > JMPZ                                                     ~39, ->87
    8    85    > > RETURN                                                   <true>
         86*       JMP                                                      ->88
   10    87    > > RETURN                                                   <false>
   12    88*     > RETURN                                                   null

End of function checkisbn

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
149.2 ms | 1407 KiB | 18 Q