3v4l.org

run code in 300+ PHP versions simultaneously
<?php $AWS_ACCESS_KEY = 'AKIAIDMODWRW3CRDO2BA'; $AWS_PRIVATE_KEY = 'kMuJRvcejqzMvmoZWsURIDKkteVTXa3ReDXQ6RqE'; $AWS_REGION = 'us-west-2'; $TOPIC_ARN_UPDATECUS = 'arn:aws:sns:us-west-2:791920038536:updateCusNumberRequest'; $endpoints = array( 'US-EAST-1' => 'sns.us-east-1.amazonaws.com', 'US-WEST-1' => 'sns.us-west-1.amazonaws.com', 'US-WEST-2' => 'sns.us-west-2.amazonaws.com', 'EU-WEST-1' => 'sns.eu-west-1.amazonaws.com', 'AP-SE-1' => 'sns.ap-southeast-1.amazonaws.com', 'AP-NE-1' => 'sns.ap-northeast-1.amazonaws.com', 'SA-EAST-1' => 'sns.sa-east-1.amazonaws.com' ); $endpoint = $endpoints[strtoupper($AWS_REGION)]; $protocol = 'https://'; $message = array( 'topic' => 'updateCusNumberRequest', 'email' => $_POST["email"], 'cus_id' => $_POST["cus_id"] ); $params = array( 'TopicArn' => $TOPIC_ARN_UPDATECUS, 'Message' => php_compat_json_encode($message) ); $params['Action'] = 'Publish'; $params['AWSAccessKeyId'] = $AWS_ACCESS_KEY; $params['Timestamp'] = gmdate('Y-m-d\TH:i:s\Z'); $params['SignatureVersion'] = 2; $params['SignatureMethod'] = 'HmacSHA256'; uksort($params, 'strnatcmp'); $queryString = ''; foreach ($params as $key => $val) { $queryString .= "&{$key}=".rawurlencode($val); } $queryString = substr($queryString, 1); $requestString = "GET\n" . $endpoint."\n" . "/\n" . $queryString; $params['Signature'] = base64_encode( php_compat_hash_hmac('sha256', $requestString, $AWS_PRIVATE_KEY, true) ); $request = $protocol . $endpoint . '/?' . php_compat_http_build_query($params); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $request); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $output = curl_exec($ch); $curlErrorNo = curl_errno($ch); $curlError = curl_error($ch); $info = curl_getinfo($ch); curl_close($ch); if ((floor($info['http_code'] / 100) == 2) === false) { if (strpos($output, '<Error>') !== FALSE) { echo "Amazon returned an XML error"; } else{ if(!empty($curlErrorNo)) { echo "There was a problem executing curl" . $curlError . " - " . $curlErrorNo; } else{ echo "There was a problem executing this request " . $info['http_code']; } } } else { echo "All good!"; } /* php4 compatible functions */ //http://bit.ly/ZeSVQ5 function php_compat_hash_hmac($algo, $data, $key, $raw_output = false) { // Block size (byte) for MD5, SHA-1 and SHA-256. $blocksize = 64; $ipad = str_repeat("\x36", $blocksize); $opad = str_repeat("\x5c", $blocksize); if (strlen($key) > $blocksize) { $key = hash($algo, $key, true); } else { $key = str_pad($key, $blocksize, "\x00"); } $ipad ^= $key; $opad ^= $key; return hash($algo, $opad . hash($algo, $ipad . $data, true), $raw_output); } //http://bit.ly/ZeSVQ5 function php_compat_hash($algo, $data, $raw_output = false) { $algo = strtolower($algo); switch ($algo) { case 'md5': $hash = md5($data); break; case 'sha1': if (!function_exists('sha1')) { require dirname(__FILE__) . '/sha1.php'; } $hash = sha1($data); break; case 'sha256': //if (!function_exists('php_compat_sha256')) { // require dirname(__FILE__) . '/_sha256.php'; //} //$hash = php_compat_sha256($data); require_once dirname(__FILE__) . '/sha256.php'; $hash = SHA256::hash($data); break; default: user_error('hash(): Unknown hashing algorithm: ' . $algo, E_USER_WARNING); return false; } if ($raw_output) { return pack('H*', $hash); } else { return $hash; } } // Define if (!function_exists('hash')) { function hash($algo, $data, $raw_output = false) { return php_compat_hash($algo, $data, $raw_output); } } //http://bit.ly/1uH6OR0 function php_compat_json_encode($a=false) { if (is_null($a)) return 'null'; if ($a === false) return 'false'; if ($a === true) return 'true'; if (is_scalar($a)) { if (is_float($a)) { // Always use "." for floats. return floatval(str_replace(",", ".", strval($a))); } if (is_string($a)) { $jsonReplaces = array(array("\\", "/", "\n", "\t", "\r", "\b", "\f", '"'), array('\\\\', '\\/', '\\n', '\\t', '\\r', '\\b', '\\f', '\"')); return '"' . str_replace($jsonReplaces[0], $jsonReplaces[1], $a) . '"'; } else return $a; } $isList = true; for ($i = 0, reset($a); $i < count($a); $i++, next($a)) { if (key($a) !== $i) { $isList = false; break; } } $result = array(); if ($isList) { foreach ($a as $v) $result[] = php_compat_json_encode($v); return '[' . join(',', $result) . ']'; } else { foreach ($a as $k => $v) $result[] = php_compat_json_encode($k).':'.php_compat_json_encode($v); return '{' . join(',', $result) . '}'; } } //http://bit.ly/1q8GwII function php_compat_http_build_query($data, $prefix = null, $sep = '', $key = '') { $ret = array(); foreach ((array )$data as $k => $v) { $k = urlencode($k); if (is_int($k) && $prefix != null) { $k = $prefix . $k; } if (!empty($key)) { $k = $key . "[" . $k . "]"; } if (is_array($v) || is_object($v)) { array_push($ret, http_build_query($v, "", $sep, $k)); } else { array_push($ret, $k . "=" . urlencode($v)); } } if (empty($sep)) { $sep = ini_get("arg_separator.output"); } return implode($sep, $ret); } ?>
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 77) Position 1 = 44, Position 2 = 55
Branch analysis from position: 44
2 jumps found. (Code = 78) Position 1 = 45, Position 2 = 55
Branch analysis from position: 45
1 jumps found. (Code = 42) Position 1 = 44
Branch analysis from position: 44
Branch analysis from position: 55
2 jumps found. (Code = 43) Position 1 = 126, Position 2 = 146
Branch analysis from position: 126
2 jumps found. (Code = 43) Position 1 = 132, Position 2 = 134
Branch analysis from position: 132
1 jumps found. (Code = 42) Position 1 = 145
Branch analysis from position: 145
1 jumps found. (Code = 42) Position 1 = 147
Branch analysis from position: 147
2 jumps found. (Code = 43) Position 1 = 152, Position 2 = 153
Branch analysis from position: 152
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 153
Branch analysis from position: 134
2 jumps found. (Code = 43) Position 1 = 137, Position 2 = 142
Branch analysis from position: 137
1 jumps found. (Code = 42) Position 1 = 145
Branch analysis from position: 145
Branch analysis from position: 142
1 jumps found. (Code = 42) Position 1 = 147
Branch analysis from position: 147
Branch analysis from position: 146
2 jumps found. (Code = 43) Position 1 = 152, Position 2 = 153
Branch analysis from position: 152
Branch analysis from position: 153
Branch analysis from position: 55
filename:       /in/DLRkt
function name:  (null)
number of ops:  154
compiled vars:  !0 = $AWS_ACCESS_KEY, !1 = $AWS_PRIVATE_KEY, !2 = $AWS_REGION, !3 = $TOPIC_ARN_UPDATECUS, !4 = $endpoints, !5 = $endpoint, !6 = $protocol, !7 = $message, !8 = $params, !9 = $queryString, !10 = $val, !11 = $key, !12 = $requestString, !13 = $request, !14 = $ch, !15 = $output, !16 = $curlErrorNo, !17 = $curlError, !18 = $info
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
    3     0  E >   ASSIGN                                                   !0, 'AKIAIDMODWRW3CRDO2BA'
    4     1        ASSIGN                                                   !1, 'kMuJRvcejqzMvmoZWsURIDKkteVTXa3ReDXQ6RqE'
    5     2        ASSIGN                                                   !2, 'us-west-2'
    6     3        ASSIGN                                                   !3, 'arn%3Aaws%3Asns%3Aus-west-2%3A791920038536%3AupdateCusNumberRequest'
    8     4        ASSIGN                                                   !4, <array>
   18     5        INIT_FCALL                                               'strtoupper'
          6        SEND_VAR                                                 !2
          7        DO_ICALL                                         $24     
          8        FETCH_DIM_R                                      ~25     !4, $24
          9        ASSIGN                                                   !5, ~25
   19    10        ASSIGN                                                   !6, 'https%3A%2F%2F'
   22    11        INIT_ARRAY                                       ~28     'updateCusNumberRequest', 'topic'
   23    12        FETCH_R                      global              ~29     '_POST'
         13        FETCH_DIM_R                                      ~30     ~29, 'email'
         14        ADD_ARRAY_ELEMENT                                ~28     ~30, 'email'
   24    15        FETCH_R                      global              ~31     '_POST'
         16        FETCH_DIM_R                                      ~32     ~31, 'cus_id'
         17        ADD_ARRAY_ELEMENT                                ~28     ~32, 'cus_id'
   21    18        ASSIGN                                                   !7, ~28
   28    19        INIT_ARRAY                                       ~34     !3, 'TopicArn'
   29    20        INIT_FCALL_BY_NAME                                       'php_compat_json_encode'
         21        SEND_VAR_EX                                              !7
         22        DO_FCALL                                      0  $35     
         23        ADD_ARRAY_ELEMENT                                ~34     $35, 'Message'
   27    24        ASSIGN                                                   !8, ~34
   32    25        ASSIGN_DIM                                               !8, 'Action'
         26        OP_DATA                                                  'Publish'
   33    27        ASSIGN_DIM                                               !8, 'AWSAccessKeyId'
         28        OP_DATA                                                  !0
   34    29        INIT_FCALL                                               'gmdate'
         30        SEND_VAL                                                 'Y-m-d%5CTH%3Ai%3As%5CZ'
         31        DO_ICALL                                         $40     
         32        ASSIGN_DIM                                               !8, 'Timestamp'
         33        OP_DATA                                                  $40
   35    34        ASSIGN_DIM                                               !8, 'SignatureVersion'
         35        OP_DATA                                                  2
   36    36        ASSIGN_DIM                                               !8, 'SignatureMethod'
         37        OP_DATA                                                  'HmacSHA256'
   38    38        INIT_FCALL                                               'uksort'
         39        SEND_REF                                                 !8
         40        SEND_VAL                                                 'strnatcmp'
         41        DO_ICALL                                                 
   39    42        ASSIGN                                                   !9, ''
   40    43      > FE_RESET_R                                       $45     !8, ->55
         44    > > FE_FETCH_R                                       ~46     $45, !10, ->55
         45    >   ASSIGN                                                   !11, ~46
   41    46        ROPE_INIT                                     3  ~49     '%26'
         47        ROPE_ADD                                      1  ~49     ~49, !11
         48        ROPE_END                                      2  ~48     ~49, '%3D'
         49        INIT_FCALL                                               'rawurlencode'
         50        SEND_VAR                                                 !10
         51        DO_ICALL                                         $51     
         52        CONCAT                                           ~52     ~48, $51
         53        ASSIGN_OP                                     8          !9, ~52
   40    54      > JMP                                                      ->44
         55    >   FE_FREE                                                  $45
   43    56        INIT_FCALL                                               'substr'
         57        SEND_VAR                                                 !9
         58        SEND_VAL                                                 1
         59        DO_ICALL                                         $54     
         60        ASSIGN                                                   !9, $54
   46    61        CONCAT                                           ~56     'GET%0A', !5
         62        CONCAT                                           ~57     ~56, '%0A'
   47    63        CONCAT                                           ~58     ~57, '%2F%0A'
   48    64        CONCAT                                           ~59     ~58, !9
   45    65        ASSIGN                                                   !12, ~59
   50    66        INIT_FCALL                                               'base64_encode'
   51    67        INIT_FCALL_BY_NAME                                       'php_compat_hash_hmac'
         68        SEND_VAL_EX                                              'sha256'
         69        SEND_VAR_EX                                              !12
         70        SEND_VAR_EX                                              !1
         71        SEND_VAL_EX                                              <true>
         72        DO_FCALL                                      0  $62     
         73        SEND_VAR                                                 $62
         74        DO_ICALL                                         $63     
   50    75        ASSIGN_DIM                                               !8, 'Signature'
   51    76        OP_DATA                                                  $63
   54    77        CONCAT                                           ~64     !6, !5
         78        CONCAT                                           ~65     ~64, '%2F%3F'
         79        INIT_FCALL_BY_NAME                                       'php_compat_http_build_query'
         80        SEND_VAR_EX                                              !8
         81        DO_FCALL                                      0  $66     
         82        CONCAT                                           ~67     ~65, $66
         83        ASSIGN                                                   !13, ~67
   56    84        INIT_FCALL_BY_NAME                                       'curl_init'
         85        DO_FCALL                                      0  $69     
         86        ASSIGN                                                   !14, $69
   57    87        INIT_FCALL_BY_NAME                                       'curl_setopt'
         88        SEND_VAR_EX                                              !14
         89        FETCH_CONSTANT                                   ~71     'CURLOPT_URL'
         90        SEND_VAL_EX                                              ~71
         91        SEND_VAR_EX                                              !13
         92        DO_FCALL                                      0          
   58    93        INIT_FCALL_BY_NAME                                       'curl_setopt'
         94        SEND_VAR_EX                                              !14
         95        FETCH_CONSTANT                                   ~73     'CURLOPT_RETURNTRANSFER'
         96        SEND_VAL_EX                                              ~73
         97        SEND_VAL_EX                                              <true>
         98        DO_FCALL                                      0          
   60    99        INIT_FCALL_BY_NAME                                       'curl_exec'
        100        SEND_VAR_EX                                              !14
        101        DO_FCALL                                      0  $75     
        102        ASSIGN                                                   !15, $75
   62   103        INIT_FCALL_BY_NAME                                       'curl_errno'
        104        SEND_VAR_EX                                              !14
        105        DO_FCALL                                      0  $77     
        106        ASSIGN                                                   !16, $77
   63   107        INIT_FCALL_BY_NAME                                       'curl_error'
        108        SEND_VAR_EX                                              !14
        109        DO_FCALL                                      0  $79     
        110        ASSIGN                                                   !17, $79
   64   111        INIT_FCALL_BY_NAME                                       'curl_getinfo'
        112        SEND_VAR_EX                                              !14
        113        DO_FCALL                                      0  $81     
        114        ASSIGN                                                   !18, $81
   66   115        INIT_FCALL_BY_NAME                                       'curl_close'
        116        SEND_VAR_EX                                              !14
        117        DO_FCALL                                      0          
   68   118        INIT_FCALL                                               'floor'
        119        FETCH_DIM_R                                      ~84     !18, 'http_code'
        120        DIV                                              ~85     ~84, 100
        121        SEND_VAL                                                 ~85
        122        DO_ICALL                                         $86     
        123        IS_EQUAL                                         ~87     $86, 2
        124        TYPE_CHECK                                    4          ~87
        125      > JMPZ                                                     ~88, ->146
   70   126    >   INIT_FCALL                                               'strpos'
        127        SEND_VAR                                                 !15
        128        SEND_VAL                                                 '%3CError%3E'
        129        DO_ICALL                                         $89     
        130        TYPE_CHECK                                  1018          $89
        131      > JMPZ                                                     ~90, ->134
   72   132    >   ECHO                                                     'Amazon+returned+an+XML+error'
        133      > JMP                                                      ->145
   75   134    >   ISSET_ISEMPTY_CV                                 ~91     !16
        135        BOOL_NOT                                         ~92     ~91
        136      > JMPZ                                                     ~92, ->142
   77   137    >   CONCAT                                           ~93     'There+was+a+problem+executing+curl', !17
        138        CONCAT                                           ~94     ~93, '+-+'
        139        CONCAT                                           ~95     ~94, !16
        140        ECHO                                                     ~95
        141      > JMP                                                      ->145
   80   142    >   FETCH_DIM_R                                      ~96     !18, 'http_code'
        143        CONCAT                                           ~97     'There+was+a+problem+executing+this+request+', ~96
        144        ECHO                                                     ~97
        145    > > JMP                                                      ->147
   86   146    >   ECHO                                                     'All+good%21'
  152   147    >   INIT_FCALL                                               'function_exists'
        148        SEND_VAL                                                 'hash'
        149        DO_ICALL                                         $98     
        150        BOOL_NOT                                         ~99     $98
        151      > JMPZ                                                     ~99, ->153
  153   152    >   DECLARE_FUNCTION                                         'hash'
  231   153    > > RETURN                                                   1

Function php_compat_hash_hmac:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 18, Position 2 = 25
Branch analysis from position: 18
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 25
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/DLRkt
function name:  php_compat_hash_hmac
number of ops:  47
compiled vars:  !0 = $algo, !1 = $data, !2 = $key, !3 = $raw_output, !4 = $blocksize, !5 = $ipad, !6 = $opad
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
   93     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV                                             !2      
          3        RECV_INIT                                        !3      <false>
   96     4        ASSIGN                                                   !4, 64
   98     5        INIT_FCALL                                               'str_repeat'
          6        SEND_VAL                                                 '6'
          7        SEND_VAR                                                 !4
          8        DO_ICALL                                         $8      
          9        ASSIGN                                                   !5, $8
   99    10        INIT_FCALL                                               'str_repeat'
         11        SEND_VAL                                                 '%5C'
         12        SEND_VAR                                                 !4
         13        DO_ICALL                                         $10     
         14        ASSIGN                                                   !6, $10
  101    15        STRLEN                                           ~12     !2
         16        IS_SMALLER                                               !4, ~12
         17      > JMPZ                                                     ~13, ->25
  102    18    >   INIT_FCALL                                               'hash'
         19        SEND_VAR                                                 !0
         20        SEND_VAR                                                 !2
         21        SEND_VAL                                                 <true>
         22        DO_ICALL                                         $14     
         23        ASSIGN                                                   !2, $14
         24      > JMP                                                      ->31
  104    25    >   INIT_FCALL                                               'str_pad'
         26        SEND_VAR                                                 !2
         27        SEND_VAR                                                 !4
         28        SEND_VAL                                                 '%00'
         29        DO_ICALL                                         $16     
         30        ASSIGN                                                   !2, $16
  107    31    >   ASSIGN_OP                                    11          !5, !2
  108    32        ASSIGN_OP                                    11          !6, !2
  110    33        INIT_FCALL                                               'hash'
         34        SEND_VAR                                                 !0
         35        INIT_FCALL                                               'hash'
         36        SEND_VAR                                                 !0
         37        CONCAT                                           ~20     !5, !1
         38        SEND_VAL                                                 ~20
         39        SEND_VAL                                                 <true>
         40        DO_ICALL                                         $21     
         41        CONCAT                                           ~22     !6, $21
         42        SEND_VAL                                                 ~22
         43        SEND_VAR                                                 !3
         44        DO_ICALL                                         $23     
         45      > RETURN                                                   $23
  111    46*     > RETURN                                                   null

End of function php_compat_hash_hmac

Function php_compat_hash:
Finding entry points
Branch analysis from position: 0
5 jumps found. (Code = 188) Position 1 = 15, Position 2 = 20, Position 3 = 35, Position 4 = 45, Position 5 = 8
Branch analysis from position: 15
1 jumps found. (Code = 42) Position 1 = 51
Branch analysis from position: 51
2 jumps found. (Code = 43) Position 1 = 52, Position 2 = 58
Branch analysis from position: 52
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 58
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 20
2 jumps found. (Code = 43) Position 1 = 25, Position 2 = 30
Branch analysis from position: 25
1 jumps found. (Code = 42) Position 1 = 51
Branch analysis from position: 51
Branch analysis from position: 30
Branch analysis from position: 35
1 jumps found. (Code = 42) Position 1 = 51
Branch analysis from position: 51
Branch analysis from position: 45
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 8
2 jumps found. (Code = 44) Position 1 = 10, Position 2 = 15
Branch analysis from position: 10
2 jumps found. (Code = 44) Position 1 = 12, Position 2 = 20
Branch analysis from position: 12
2 jumps found. (Code = 44) Position 1 = 14, Position 2 = 35
Branch analysis from position: 14
1 jumps found. (Code = 42) Position 1 = 45
Branch analysis from position: 45
Branch analysis from position: 35
Branch analysis from position: 20
Branch analysis from position: 15
filename:       /in/DLRkt
function name:  php_compat_hash
number of ops:  60
compiled vars:  !0 = $algo, !1 = $data, !2 = $raw_output, !3 = $hash
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  114     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV_INIT                                        !2      <false>
  116     3        INIT_FCALL                                               'strtolower'
          4        SEND_VAR                                                 !0
          5        DO_ICALL                                         $4      
          6        ASSIGN                                                   !0, $4
  117     7      > SWITCH_STRING                                            !0, [ 'md5':->15, 'sha1':->20, 'sha256':->35, ], ->45
  118     8    >   IS_EQUAL                                                 !0, 'md5'
          9      > JMPNZ                                                    ~6, ->15
  122    10    >   IS_EQUAL                                                 !0, 'sha1'
         11      > JMPNZ                                                    ~6, ->20
  129    12    >   IS_EQUAL                                                 !0, 'sha256'
         13      > JMPNZ                                                    ~6, ->35
         14    > > JMP                                                      ->45
  119    15    >   INIT_FCALL                                               'md5'
         16        SEND_VAR                                                 !1
         17        DO_ICALL                                         $7      
         18        ASSIGN                                                   !3, $7
  120    19      > JMP                                                      ->51
  123    20    >   INIT_FCALL                                               'function_exists'
         21        SEND_VAL                                                 'sha1'
         22        DO_ICALL                                         $9      
         23        BOOL_NOT                                         ~10     $9
         24      > JMPZ                                                     ~10, ->30
  124    25    >   INIT_FCALL                                               'dirname'
         26        SEND_VAL                                                 '%2Fin%2FDLRkt'
         27        DO_ICALL                                         $11     
         28        CONCAT                                           ~12     $11, '%2Fsha1.php'
         29        INCLUDE_OR_EVAL                                          ~12, REQUIRE
  126    30    >   INIT_FCALL                                               'sha1'
         31        SEND_VAR                                                 !1
         32        DO_ICALL                                         $14     
         33        ASSIGN                                                   !3, $14
  127    34      > JMP                                                      ->51
  135    35    >   INIT_FCALL                                               'dirname'
         36        SEND_VAL                                                 '%2Fin%2FDLRkt'
         37        DO_ICALL                                         $16     
         38        CONCAT                                           ~17     $16, '%2Fsha256.php'
         39        INCLUDE_OR_EVAL                                          ~17, REQUIRE_ONCE
  136    40        INIT_STATIC_METHOD_CALL                                  'SHA256', 'hash'
         41        SEND_VAR_EX                                              !1
         42        DO_FCALL                                      0  $19     
         43        ASSIGN                                                   !3, $19
  137    44      > JMP                                                      ->51
  140    45    >   INIT_FCALL                                               'user_error'
         46        CONCAT                                           ~21     'hash%28%29%3A+Unknown+hashing+algorithm%3A+', !0
         47        SEND_VAL                                                 ~21
         48        SEND_VAL                                                 512
         49        DO_ICALL                                                 
  141    50      > RETURN                                                   <false>
  144    51    > > JMPZ                                                     !2, ->58
  145    52    >   INIT_FCALL                                               'pack'
         53        SEND_VAL                                                 'H%2A'
         54        SEND_VAR                                                 !3
         55        DO_ICALL                                         $23     
         56      > RETURN                                                   $23
         57*       JMP                                                      ->59
  147    58    > > RETURN                                                   !3
  149    59*     > RETURN                                                   null

End of function php_compat_hash

Function %00hash%2Fin%2FDLRkt%3A153%240:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename:       /in/DLRkt
function name:  hash
number of ops:  10
compiled vars:  !0 = $algo, !1 = $data, !2 = $raw_output
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  153     0  E >   RECV                                             !0      
          1        RECV                                             !1      
          2        RECV_INIT                                        !2      <false>
  155     3        INIT_FCALL                                               'php_compat_hash'
          4        SEND_VAR                                                 !0
          5        SEND_VAR                                                 !1
          6        SEND_VAR                                                 !2
          7        DO_FCALL                                      0  $3      
          8      > RETURN                                                   $3
  156     9*     > RETURN                                                   null

End of function %00hash%2Fin%2FDLRkt%3A153%240

Function php_compat_json_encode:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 3, Position 2 = 4
Branch analysis from position: 3
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 4
2 jumps found. (Code = 43) Position 1 = 6, Position 2 = 7
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
2 jumps found. (Code = 43) Position 1 = 9, Position 2 = 10
Branch analysis from position: 9
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 12, Position 2 = 37
Branch analysis from position: 12
2 jumps found. (Code = 43) Position 1 = 14, Position 2 = 22
Branch analysis from position: 14
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 22
2 jumps found. (Code = 43) Position 1 = 24, Position 2 = 36
Branch analysis from position: 24
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 36
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 37
1 jumps found. (Code = 42) Position 1 = 54
Branch analysis from position: 54
2 jumps found. (Code = 44) Position 1 = 57, Position 2 = 43
Branch analysis from position: 57
2 jumps found. (Code = 43) Position 1 = 59, Position 2 = 76
Branch analysis from position: 59
2 jumps found. (Code = 77) Position 1 = 60, Position 2 = 67
Branch analysis from position: 60
2 jumps found. (Code = 78) Position 1 = 61, Position 2 = 67
Branch analysis from position: 61
1 jumps found. (Code = 42) Position 1 = 60
Branch analysis from position: 60
Branch analysis from position: 67
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 67
Branch analysis from position: 76
2 jumps found. (Code = 77) Position 1 = 77, Position 2 = 90
Branch analysis from position: 77
2 jumps found. (Code = 78) Position 1 = 78, Position 2 = 90
Branch analysis from position: 78
1 jumps found. (Code = 42) Position 1 = 77
Branch analysis from position: 77
Branch analysis from position: 90
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 90
Branch analysis from position: 43
2 jumps found. (Code = 43) Position 1 = 48, Position 2 = 50
Branch analysis from position: 48
1 jumps found. (Code = 42) Position 1 = 57
Branch analysis from position: 57
Branch analysis from position: 50
2 jumps found. (Code = 44) Position 1 = 57, Position 2 = 43
Branch analysis from position: 57
Branch analysis from position: 43
filename:       /in/DLRkt
function name:  php_compat_json_encode
number of ops:  99
compiled vars:  !0 = $a, !1 = $jsonReplaces, !2 = $isList, !3 = $i, !4 = $result, !5 = $v, !6 = $k
line      #* E I O op                           fetch          ext  return  operands
-------------------------------------------------------------------------------------
  160     0  E >   RECV_INIT                                        !0      <false>
  162     1        TYPE_CHECK                                    2          !0
          2      > JMPZ                                                     ~7, ->4
          3    > > RETURN                                                   'null'
  163     4    >   TYPE_CHECK                                    4          !0
          5      > JMPZ                                                     ~8, ->7
          6    > > RETURN                                                   'false'
  164     7    >   TYPE_CHECK                                    8          !0
          8      > JMPZ                                                     ~9, ->10
          9    > > RETURN                                                   'true'
  165    10    >   TYPE_CHECK                                  124          !0
         11      > JMPZ                                                     ~10, ->37
  167    12    >   TYPE_CHECK                                   32          !0
         13      > JMPZ                                                     ~11, ->22
  170    14    >   INIT_FCALL                                               'str_replace'
         15        SEND_VAL                                                 '%2C'
         16        SEND_VAL                                                 '.'
         17        CAST                                          6  ~12     !0
         18        SEND_VAL                                                 ~12
         19        DO_ICALL                                         $13     
         20        CAST                                          5  ~14     $13
         21      > RETURN                                                   ~14
  173    22    >   TYPE_CHECK                                   64          !0
         23      > JMPZ                   

Generated using Vulcan Logic Dumper, using php 8.0.0


preferences:
176.56 ms | 1431 KiB | 51 Q