3v4l.org

run code in 300+ PHP versions simultaneously
<?php $api_key = '552542759d42133d1b37023c2baf36ca6871d006'; $now = new DateTime(); $url = "https://sellercenter-api.linio.com.mx/?"; $parameters = array( 'UserID' => 'john.doe@company.comd', 'Version' => '1.0', 'Action' => 'FeedList', 'Timestamp' => $now->format(DateTime::ISO8601), ); // Sort parameters by name ksort($parameters); $params = array(); foreach ($parameters as $name => $value) { $params[] = rawurlencode($name) . '=' . rawurlencode($value); } $strToSign = implode('&', $params); // Compute signature and add it to the parameters $parameters['Signature'] = rawurlencode(hash_hmac('sha256', $strToSign, $api_key, false)); echo $parameters['Signature'];
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 18, Position 2 = 31
Branch analysis from position: 18
2 jumps found. (Code = 78) Position 1 = 19, Position 2 = 31
Branch analysis from position: 19
1 jumps found. (Code = 42) Position 1 = 18
Branch analysis from position: 18
Branch analysis from position: 31
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 31
filename:       /in/FVK7m
function name:  (null)
number of ops:  51
compiled vars:  !0 = $api_key, !1 = $now, !2 = $url, !3 = $parameters, !4 = $params, !5 = $value, !6 = $name, !7 = $strToSign
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    2     0  E >   ASSIGN                                                   !0, '552542759d42133d1b37023c2baf36ca6871d006'
    3     1        NEW                                              $9      'DateTime'
          2        DO_FCALL                                      0          
          3        ASSIGN                                                   !1, $9
    4     4        ASSIGN                                                   !2, 'https%3A%2F%2Fsellercenter-api.linio.com.mx%2F%3F'
    6     5        INIT_ARRAY                                       ~13     'john.doe%40company.comd', 'UserID'
    7     6        ADD_ARRAY_ELEMENT                                ~13     '1.0', 'Version'
    8     7        ADD_ARRAY_ELEMENT                                ~13     'FeedList', 'Action'
    9     8        INIT_METHOD_CALL                                         !1, 'format'
          9        SEND_VAL_EX                                              'Y-m-d%5CTH%3Ai%3AsO'
         10        DO_FCALL                                      0  $14     
         11        ADD_ARRAY_ELEMENT                                ~13     $14, 'Timestamp'
    5    12        ASSIGN                                                   !3, ~13
   12    13        INIT_FCALL                                               'ksort'
         14        SEND_REF                                                 !3
         15        DO_ICALL                                                 
   13    16        ASSIGN                                                   !4, <array>
   14    17      > FE_RESET_R                                       $18     !3, ->31
         18    > > FE_FETCH_R                                       ~19     $18, !5, ->31
         19    >   ASSIGN                                                   !6, ~19
   15    20        INIT_FCALL                                               'rawurlencode'
         21        SEND_VAR                                                 !6
         22        DO_ICALL                                         $22     
         23        CONCAT                                           ~23     $22, '%3D'
         24        INIT_FCALL                                               'rawurlencode'
         25        SEND_VAR                                                 !5
         26        DO_ICALL                                         $24     
         27        CONCAT                                           ~25     ~23, $24
         28        ASSIGN_DIM                                               !4
         29        OP_DATA                                                  ~25
   14    30      > JMP                                                      ->18
         31    >   FE_FREE                                                  $18
   17    32        INIT_FCALL                                               'implode'
         33        SEND_VAL                                                 '%26'
         34        SEND_VAR                                                 !4
         35        DO_ICALL                                         $26     
         36        ASSIGN                                                   !7, $26
   20    37        INIT_FCALL                                               'rawurlencode'
         38        INIT_FCALL                                               'hash_hmac'
         39        SEND_VAL                                                 'sha256'
         40        SEND_VAR                                                 !7
         41        SEND_VAR                                                 !0
         42        SEND_VAL                                                 <false>
         43        DO_ICALL                                         $29     
         44        SEND_VAR                                                 $29
         45        DO_ICALL                                         $30     
   19    46        ASSIGN_DIM                                               !3, 'Signature'
   20    47        OP_DATA                                                  $30
   22    48        FETCH_DIM_R                                      ~31     !3, 'Signature'
         49        ECHO                                                     ~31
         50      > RETURN                                                   1

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
168.14 ms | 1405 KiB | 21 Q