3v4l.org

run code in 300+ PHP versions simultaneously
<?php # set up a new session $imei = '000999999999999999'; $source_id = '0000000099'; $source_key = "\x24\x73\xAB\x7F\x88\x4F\x4B\x2F"; $host = $argv[1]; $port = $argv[2]; # set up a new session $c_request = $imei."".$source_id; $enc_c_request = Crypt::encrypt( $c_request, Crypt::COMMON_KEY); $url = 'http://'.$host.':'.$port.'/sw-system/sloc8r/public/c.php'; //$url = 'http://'.$host.':'.$port.'/V2.7.2/c.php'; $response = send_request($url, $enc_c_request); $result = split(',', $response,3); $session_data = split(',', Crypt::decrypt($result[2], $source_key), 2); $session_id = sprintf("%020d", $session_data[0]); $session_key = $session_data[1]; //print "session_id: $session_id\n"; # send a location block $time = time(); $dataFiles = scandir ($argv[3]); foreach($dataFiles as $dataFile){ if(strlen($dataFile)<5) continue; print_r($dataFile);echo "\n"; $reqData = fopen($argv[3]."/".$dataFile, "r"); $file_name = preg_replace('/[^0-9]/', '', $dataFile); $url = 'http://'.$host.':'.$port.'/sw-system/sloc8r/public/d.php'; //$url = 'http://'.$host.':'.$port.'/V2.7.2/d.php'; $sleepTime = 3; if (isset($argv[4])){ $sleepTime = $argv[4]; } while (!feof($reqData)){ $line = fgets($reqData); if(strlen($line)<120) continue; //echo $line."\n"; $line = explode(",",$line,3); //print_r($line);exit; $d_request_data = $line[2]; //$d_request_data = $line; $enc_d_request = Crypt::encrypt(gzencode($d_request_data), $session_key); $request = $session_id.$enc_d_request; #print "request: $request\n"; file_put_contents('/tmp/request.post', $request); # response from d.php $response = send_request($url, $request); #print "raw response:\n"; //var_dump($response); #print "\n\n"; if (preg_match('/^\$UP/', $response)){ $uncompressed = $response; } else { $decrypted = Crypt::decrypt($response, $session_key); $stripped = substr($decrypted,10,-8); $uncompressed = gzinflate( $stripped ); } $d_response = split(',',$uncompressed); # var_dump($d_response); if ($d_response[0] == "\$UP" && ($d_response[1] == "1")){ print $file_name.",$uncompressed\n"; } else { print "response: ".implode(',',$d_response)."\n"; } //print "sleeping for $sleepTime seconds\n"; sleep($sleepTime); } } ############################################## function printStrHex($string) { echo "begin hex dump\n"; for ($i = 0; $i < strlen($string); $i++) { echo dechex(ord($string[$i])); } echo "\nEnd hex dump\n"; } function send_request($url, $request) { $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n" . "Content-Length: " . strlen($request) . "\r\n" . "Expect: \r\n", 'method' => 'POST', 'content' => $request, ), ); $context = stream_context_create($options); if ( $result = file_get_contents($url, false, $context) ) { return $result; } else { print "Couldnt conenct to $url ($result)\n"; exit(2); } } class Crypt { const COMMON_KEY = "\xb5\xfb\xf4\x70\xd8\xd4\xf9\xb9"; static public function decrypt($str, $key) { $str = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_ECB); $pad = ord($str[($len = strlen($str)) - 1]); //last byte contains amount of padding applied return substr($str, 0, strlen($str) - $pad); } static public function encrypt($str, $key) { $block = mcrypt_get_block_size('rijndael_128', 'ecb'); $pad = $block - (strlen($str) % $block); $str .= str_repeat(chr($pad), $pad); return mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $str, MCRYPT_MODE_ECB); } } ?>

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.2.70.0140.00518.86
8.2.60.0120.00618.95
8.2.50.0170.00018.64
8.2.40.0100.00518.95
8.2.30.0110.00518.67
8.2.20.0090.00918.62
8.2.10.0120.00618.75
8.2.00.0120.00619.01
8.1.200.0150.00218.62
8.1.190.0110.00618.62
8.1.180.0170.00018.62
8.1.170.0150.00318.62
8.1.160.0050.01118.62
8.1.150.0110.00618.62
8.1.140.0120.00418.62
8.1.130.0000.01618.62
8.1.120.0110.00718.63
8.1.110.0120.00418.62
8.1.100.0080.00818.75
8.1.90.0120.00319.84
8.1.80.0110.00618.69
8.1.70.0140.00318.62
8.1.60.0070.01118.71
8.1.50.0100.00718.66
8.1.40.0110.00018.80
8.1.30.0000.00920.51
8.1.20.0130.00318.91
8.1.10.0090.00220.28
8.1.00.0070.00220.35
8.0.290.0070.00718.62
8.0.280.0070.00219.90
8.0.270.0070.00718.62
8.0.260.0100.00019.85
8.0.250.0080.00418.62
8.0.240.0000.01118.62
8.0.230.0040.00419.93
8.0.220.0070.00518.62
8.0.210.0040.00419.69
8.0.200.0050.00519.67
8.0.190.0120.00318.62
8.0.180.0000.00919.67
8.0.170.0160.00018.62
8.0.160.0030.00619.97
8.0.150.0100.00518.62
8.0.140.0130.00318.62
8.0.130.0050.00519.94
8.0.120.0110.00418.62
8.0.110.0050.00519.82
8.0.100.0080.00818.62
8.0.90.0070.00218.62
8.0.80.0030.00618.62
8.0.70.0080.00818.62
8.0.60.0070.00319.61
8.0.50.0050.01018.62
8.0.30.0060.00319.89
8.0.20.0110.00418.62
8.0.10.0150.00018.62
8.0.00.0170.00018.62
7.4.330.0150.00018.62
7.4.320.0040.01218.62
7.4.300.0100.00718.62
7.4.290.0140.00218.62
7.4.280.0090.00718.62
7.4.270.0120.00418.62
7.4.260.0030.01318.62
7.4.250.0110.00518.62
7.4.240.0140.00318.62
7.4.230.0130.00318.62
7.4.220.0070.00718.62
7.4.210.0050.01018.62
7.4.200.0130.00318.62
7.4.190.0090.00618.62
7.4.180.0090.00618.62
7.4.160.0130.00318.62
7.4.150.0000.01418.62
7.4.140.0140.00018.62
7.4.130.0080.00818.62
7.4.120.0080.00818.62
7.4.110.0120.00218.62
7.4.100.0150.00018.62
7.4.90.0150.00018.62
7.4.80.0100.00718.62
7.4.70.0090.00518.62
7.4.60.0100.00518.62
7.4.50.0060.00918.62
7.4.40.0160.00018.62
7.4.30.0100.00518.62
7.4.20.0070.00718.62
7.4.10.0100.00718.62
7.4.00.0090.00618.62
7.3.330.0160.00018.62
7.3.320.0110.00318.62
7.3.310.0150.00018.62
7.3.300.0090.00618.62
7.3.290.0070.00718.62
7.3.280.0000.01518.62
7.3.270.0040.01118.62
7.3.260.0100.00518.62
7.3.250.0090.00618.62
7.3.240.0120.00618.62
7.3.230.0080.00818.62
7.3.220.0060.00918.62
7.3.210.0110.00518.62
7.3.200.0130.00418.62
7.3.190.0130.00318.62
7.3.180.0050.01018.62
7.3.170.0060.00918.62
7.3.160.0160.00018.62
7.3.150.0110.00518.62
7.3.140.0070.00718.62
7.3.130.0170.00018.62
7.3.120.0100.00518.62
7.3.110.0100.00518.62
7.3.100.0130.00318.62
7.3.90.0120.00418.62
7.3.80.0110.00418.62
7.3.70.0140.00018.62
7.3.60.0110.00418.62
7.3.50.0100.00518.62
7.3.40.0050.01018.62
7.3.30.0050.01018.62
7.3.20.0120.00418.93
7.3.10.0100.00518.97
7.3.00.0100.00519.12
7.2.340.0140.00018.62
7.2.330.0150.00018.62
7.2.320.0120.00318.62
7.2.310.0160.00018.62
7.2.300.0090.00618.62
7.2.290.0100.00618.62
7.2.280.0100.00518.62
7.2.270.0130.00318.62
7.2.260.0120.00418.62
7.2.250.0130.00218.62
7.2.240.0080.00818.62
7.2.230.0150.00018.62
7.2.220.0050.01018.62
7.2.210.0060.00918.62
7.2.200.0140.00318.62
7.2.190.0150.00018.62
7.2.180.0100.00518.62
7.2.170.0100.00518.62
7.2.160.0150.00018.62
7.2.150.0130.00319.32
7.2.140.0120.00319.21
7.2.130.0100.00519.18
7.2.120.0110.00321.28
7.2.110.0080.00819.25
7.2.100.0050.01019.20
7.2.90.0080.00819.29
7.2.80.0120.00419.20
7.2.70.0150.00019.37
7.2.60.0150.00019.35
7.2.50.0080.00819.05
7.2.40.0160.00019.45
7.2.30.0130.00319.51
7.2.20.0110.00419.45
7.2.10.0100.00719.24
7.2.00.0130.00219.48
7.1.330.0110.00318.62
7.1.320.0000.01418.62
7.1.310.0090.00418.62
7.1.300.0100.00318.62
7.1.290.0100.00318.62
7.1.280.0110.00418.62
7.1.270.0140.00018.62
7.1.260.0110.00418.62
7.1.250.0090.00518.62
7.1.240.0110.00418.62
7.1.230.0100.00318.62
7.1.220.0070.00718.62
7.1.210.0070.00718.62
7.1.200.0080.00618.62
7.1.190.0100.00518.62
7.1.180.0110.00318.62
7.1.170.0070.00718.62
7.1.160.0150.00018.62
7.1.150.0110.00418.62
7.1.140.0120.00318.62
7.1.130.0110.00418.62
7.1.120.0110.00418.62
7.1.110.0050.00918.62
7.1.100.0100.00318.62
7.1.90.0110.00318.62
7.1.80.0150.00018.62
7.1.70.0110.00318.62
7.1.60.0090.00518.62
7.1.50.0150.00018.62
7.1.40.0090.00518.62
7.1.30.0150.00018.62
7.1.20.0080.00618.62
7.1.10.0150.00018.62
7.1.00.0140.00018.62
7.0.330.0100.00318.62
7.0.320.0110.00318.62
7.0.310.0090.00418.62
7.0.300.0130.00018.62
7.0.290.0100.00318.62
7.0.280.0090.00418.62
7.0.270.0040.00918.62
7.0.260.0110.00218.62
7.0.250.0130.00218.62
7.0.240.0050.00818.62
7.0.230.0110.00318.62
7.0.220.0070.00718.62
7.0.210.0000.01418.62
7.0.200.0100.00318.62
7.0.190.0100.00318.62
7.0.180.0090.00318.62
7.0.170.0100.00318.62
7.0.160.0090.00418.62
7.0.150.0130.00018.62
7.0.140.0030.01018.62
7.0.130.0150.00018.62
7.0.120.0070.00718.62
7.0.110.0100.00318.62
7.0.100.0130.00018.62
7.0.90.0090.00418.62
7.0.80.0100.00318.62
7.0.70.0130.00018.62
7.0.60.0070.00718.62
7.0.50.0090.00418.62
7.0.40.0040.00918.62
7.0.30.0140.00018.62
7.0.20.0090.00418.62
7.0.10.0100.00318.62
7.0.00.0100.00318.62
5.6.400.0130.00018.62
5.6.390.0130.00018.62
5.6.380.0150.00018.62
5.6.370.0110.00418.62
5.6.360.0090.00418.62
5.6.350.0140.00018.62
5.6.340.0140.00018.62
5.6.330.0100.00318.62
5.6.320.0080.00518.62
5.6.310.0090.00418.62
5.6.300.0080.00518.62
5.6.290.0030.01018.62
5.6.280.0140.00018.62
5.6.270.0130.00018.62
5.6.260.0130.00018.62
5.6.250.0070.00718.62
5.6.240.0140.00018.62
5.6.230.0130.00018.62
5.6.220.0110.00318.62
5.6.210.0130.00018.62
5.6.200.0080.00518.62
5.6.190.0100.00318.62
5.6.180.0140.00018.62
5.6.170.0100.00318.62
5.6.160.0100.00318.62
5.6.150.0060.00618.62
5.6.140.0100.00318.62
5.6.130.0090.00518.62
5.6.120.0130.00018.62
5.6.110.0120.00018.62
5.6.100.0080.00518.62
5.6.90.0030.01018.62
5.6.80.0090.00318.62
5.6.70.0120.00018.62
5.6.60.0090.00418.62
5.6.50.0100.00318.62
5.6.40.0090.00418.62
5.6.30.0060.00618.62
5.6.20.0060.00618.62
5.6.10.0100.00318.62
5.6.00.0100.00318.62

preferences:
44.62 ms | 401 KiB | 5 Q