3v4l.org

run code in 300+ PHP versions simultaneously
<?php Function apiCall($resource, $action, $query = false) { $private = 'bdc6a6b1f2c5'; $public = ''; date_default_timezone_set('UTC'); $date = gmdate(DATE_RFC1123); $digest = hash_hmac('sha256', strtolower($resource.':'.$action.($query ? ':'.http_build_query($query) : '')).':'.$date, $private); $headers = array( "Date: $date", "Auth: $public/$digest", //"Accept: application/xml" ); $ch = curl_init(); curl_setopt( $ch, CURLOPT_URL, 'http://api.erepublik.com/'.$resource.'/'.$action.(($query) ? '?'.http_build_query($query): "")); curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers ); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true ); $result = curl_exec( $ch ); curl_close( $ch ); return $result; } $result = apiCall('citizen', 'profile', array('citizenId' => 7921126)); echo $result; ?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/ghoE8
function name:  (null)
number of ops:  8
compiled vars:  !0 = $result
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   21     0  E >   INIT_FCALL                                               'apicall'
          1        SEND_VAL                                                 'citizen'
          2        SEND_VAL                                                 'profile'
          3        SEND_VAL                                                 <array>
          4        DO_FCALL                                      0  $1      
          5        ASSIGN                                                   !0, $1
   22     6        ECHO                                                     !0
   23     7      > RETURN                                                   1

Function apicall:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 24
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 25
Branch analysis from position: 25
2 jumps found. (Code = 43) Position 1 = 54, Position 2 = 60
Branch analysis from position: 54
1 jumps found. (Code = 42) Position 1 = 61
Branch analysis from position: 61
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 60
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 24
2 jumps found. (Code = 43) Position 1 = 54, Position 2 = 60
Branch analysis from position: 54
Branch analysis from position: 60
filename:       /in/ghoE8
function name:  apiCall
number of ops:  85
compiled vars:  !0 = $resource, !1 = $action, !2 = $query, !3 = $private, !4 = $public, !5 = $date, !6 = $digest, !7 = $headers, !8 = $ch, !9 = $result
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV_INIT                                        !2      <false>
    3     3        ASSIGN                                                   !3, 'bdc6a6b1f2c5'
    4     4        ASSIGN                                                   !4, ''
    5     5        INIT_FCALL                                               'date_default_timezone_set'
          6        SEND_VAL                                                 'UTC'
          7        DO_ICALL                                                 
    6     8        INIT_FCALL                                               'gmdate'
          9        SEND_VAL                                                 'D%2C+d+M+Y+H%3Ai%3As+O'
         10        DO_ICALL                                         $13     
         11        ASSIGN                                                   !5, $13
    7    12        INIT_FCALL                                               'hash_hmac'
         13        SEND_VAL                                                 'sha256'
         14        INIT_FCALL                                               'strtolower'
         15        CONCAT                                           ~15     !0, '%3A'
         16        CONCAT                                           ~16     ~15, !1
         17      > JMPZ                                                     !2, ->24
         18    >   INIT_FCALL                                               'http_build_query'
         19        SEND_VAR                                                 !2
         20        DO_ICALL                                         $17     
         21        CONCAT                                           ~18     '%3A', $17
         22        QM_ASSIGN                                        ~19     ~18
         23      > JMP                                                      ->25
         24    >   QM_ASSIGN                                        ~19     ''
         25    >   CONCAT                                           ~20     ~16, ~19
         26        SEND_VAL                                                 ~20
         27        DO_ICALL                                         $21     
         28        CONCAT                                           ~22     $21, '%3A'
         29        CONCAT                                           ~23     ~22, !5
         30        SEND_VAL                                                 ~23
         31        SEND_VAR                                                 !3
         32        DO_ICALL                                         $24     
         33        ASSIGN                                                   !6, $24
    9    34        NOP                                                      
         35        FAST_CONCAT                                      ~26     'Date%3A+', !5
         36        INIT_ARRAY                                       ~27     ~26
   10    37        ROPE_INIT                                     4  ~29     'Auth%3A+'
         38        ROPE_ADD                                      1  ~29     ~29, !4
         39        ROPE_ADD                                      2  ~29     ~29, '%2F'
         40        ROPE_END                                      3  ~28     ~29, !6
         41        ADD_ARRAY_ELEMENT                                ~27     ~28
    8    42        ASSIGN                                                   !7, ~27
   13    43        INIT_FCALL_BY_NAME                                       'curl_init'
         44        DO_FCALL                                      0  $32     
         45        ASSIGN                                                   !8, $32
   14    46        INIT_FCALL_BY_NAME                                       'curl_setopt'
         47        SEND_VAR_EX                                              !8
         48        FETCH_CONSTANT                                   ~34     'CURLOPT_URL'
         49        SEND_VAL_EX                                              ~34
         50        CONCAT                                           ~35     'http%3A%2F%2Fapi.erepublik.com%2F', !0
         51        CONCAT                                           ~36     ~35, '%2F'
         52        CONCAT                                           ~37     ~36, !1
         53      > JMPZ                                                     !2, ->60
         54    >   INIT_FCALL                                               'http_build_query'
         55        SEND_VAR                                                 !2
         56        DO_ICALL                                         $38     
         57        CONCAT                                           ~39     '%3F', $38
         58        QM_ASSIGN                                        ~40     ~39
         59      > JMP                                                      ->61
         60    >   QM_ASSIGN                                        ~40     ''
         61    >   CONCAT                                           ~41     ~37, ~40
         62        SEND_VAL_EX                                              ~41
         63        DO_FCALL                                      0          
   15    64        INIT_FCALL_BY_NAME                                       'curl_setopt'
         65        SEND_VAR_EX                                              !8
         66        FETCH_CONSTANT                                   ~43     'CURLOPT_HTTPHEADER'
         67        SEND_VAL_EX                                              ~43
         68        SEND_VAR_EX                                              !7
         69        DO_FCALL                                      0          
   16    70        INIT_FCALL_BY_NAME                                       'curl_setopt'
         71        SEND_VAR_EX                                              !8
         72        FETCH_CONSTANT                                   ~45     'CURLOPT_RETURNTRANSFER'
         73        SEND_VAL_EX                                              ~45
         74        SEND_VAL_EX                                              <true>
         75        DO_FCALL                                      0          
   17    76        INIT_FCALL_BY_NAME                                       'curl_exec'
         77        SEND_VAR_EX                                              !8
         78        DO_FCALL                                      0  $47     
         79        ASSIGN                                                   !9, $47
   18    80        INIT_FCALL_BY_NAME                                       'curl_close'
         81        SEND_VAR_EX                                              !8
         82        DO_FCALL                                      0          
   19    83      > RETURN                                                   !9
   20    84*     > RETURN                                                   null

End of function apicall

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
170.49 ms | 1411 KiB | 24 Q