<?php
$X = array(
'ALLUSERSPROFILE' => '',
'APPDATA' => '',
'COMMANDER_DRIVE' => '',
'COMMANDER_EXE' => '',
'COMMANDER_INI' => '',
'COMMANDER_PATH' => '',
'CommonProgramFiles' => '',
'CommonProgramFiles(x86)' => '',
'CommonProgramW6432' => '',
'COMPUTERNAME' => '',
'ComSpec' => '',
'EMAIL' => '',
'FP_NO_HOST_CHECK' => '',
'HOMEDRIVE' => '',
'HOMEPATH' => '',
'LOCALAPPDATA' => '',
'LOGONSERVER' => '',
'NUMBER_OF_PROCESSORS' => '',
'OS' => '',
'Path' => '',
'PATHEXT' => '',
'PROCESSOR_ARCHITECTURE' => '',
'PROCESSOR_ARCHITEW6432' => '',
'PROCESSOR_IDENTIFIER' => '',
'PROCESSOR_LEVEL' => '',
'PROCESSOR_REVISION' => '',
'ProgramData' => '',
'ProgramFiles' => '',
'ProgramFiles(x86)' => '',
'ProgramW6432' => '',
'PROMPT' => '',
'PSModulePath' => '',
'PUBLIC' => '',
'SESSIONNAME' => '',
'SystemDrive' => '',
'SystemRoot' => '',
'TEMP' => '',
'TMP' => '',
'USERDOMAIN' => '',
'USERDOMAIN_ROAMINGPROFILE' => '',
'USERNAME' => '',
'USERPROFILE' => '',
'VBOX_INSTALL_PATH' => '',
'VBOX_MSI_INSTALL_PATH' => '',
'windir' => '',
'HTTP_COOKIE' => '',
'HTTP_ACCEPT_LANGUAGE' => '',
'HTTP_ACCEPT_ENCODING' => '',
'HTTP_REFERER' => '',
'HTTP_USER_AGENT' => '',
'HTTP_ACCEPT' => '',
'HTTP_CACHE_CONTROL' => '',
'HTTP_CONNECTION' => '',
'HTTP_HOST' => '',
'SCRIPT_FILENAME' => '',
'REDIRECT_STATUS' => '',
'SERVER_NAME' => '',
'SERVER_PORT' => '',
'SERVER_ADDR' => '',
'REMOTE_PORT' => '',
'REMOTE_ADDR' => '',
'SERVER_SOFTWARE' => '',
'GATEWAY_INTERFACE' => '',
'SERVER_PROTOCOL' => '',
'DOCUMENT_ROOT' => '',
'DOCUMENT_URI' => '',
'REQUEST_URI' => '',
'SCRIPT_NAME' => '',
'CONTENT_LENGTH' => '',
'CONTENT_TYPE' => '',
'REQUEST_METHOD' => '',
'QUERY_STRING' => '',
'FCGI_ROLE' => '',
'PHP_SELF' => '',
'REQUEST_TIME_FLOAT' => '',
'REQUEST_TIME' => '',
);
$time = microtime(true);
for ($i = 0; $i < 10000; $i++) {
$array = [];
foreach ($X as $key => $value) {
if (0 === strpos($key, 'HTTP_')) {
$array[] = $key;
}
}
}
var_dump($array, microtime(true) - $time);
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 22
Branch analysis from position: 22
2 jumps found. (Code = 44) Position 1 = 24, Position 2 = 7
Branch analysis from position: 24
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 7
2 jumps found. (Code = 77) Position 1 = 9, Position 2 = 20
Branch analysis from position: 9
2 jumps found. (Code = 78) Position 1 = 10, Position 2 = 20
Branch analysis from position: 10
2 jumps found. (Code = 43) Position 1 = 17, Position 2 = 19
Branch analysis from position: 17
1 jumps found. (Code = 42) Position 1 = 9
Branch analysis from position: 9
Branch analysis from position: 19
Branch analysis from position: 20
2 jumps found. (Code = 44) Position 1 = 24, Position 2 = 7
Branch analysis from position: 24
Branch analysis from position: 7
Branch analysis from position: 20
filename: /in/X8sqR
function name: (null)
number of ops: 33
compiled vars: !0 = $X, !1 = $time, !2 = $i, !3 = $array, !4 = $value, !5 = $key
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
3 0 E > ASSIGN !0, <array>
82 1 INIT_FCALL 'microtime'
2 SEND_VAL <true>
3 DO_ICALL $7
4 ASSIGN !1, $7
84 5 ASSIGN !2, 0
6 > JMP ->22
85 7 > ASSIGN !3, <array>
86 8 > FE_RESET_R $11 !0, ->20
9 > > FE_FETCH_R ~12 $11, !4, ->20
10 > ASSIGN !5, ~12
87 11 INIT_FCALL 'strpos'
12 SEND_VAR !5
13 SEND_VAL 'HTTP_'
14 DO_ICALL $14
15 IS_IDENTICAL $14, 0
16 > JMPZ ~15, ->19
88 17 > ASSIGN_DIM !3
18 OP_DATA !5
86 19 > > JMP ->9
20 > FE_FREE $11
84 21 PRE_INC !2
22 > IS_SMALLER !2, 10000
23 > JMPNZ ~18, ->7
93 24 > INIT_FCALL 'var_dump'
25 SEND_VAR !3
26 INIT_FCALL 'microtime'
27 SEND_VAL <true>
28 DO_ICALL $19
29 SUB ~20 $19, !1
30 SEND_VAL ~20
31 DO_ICALL
32 > RETURN 1
Generated using Vulcan Logic Dumper, using php 8.0.0
preferences:
210.83 ms | 1396 KiB | 19 Q