3v4l.org

run code in 300+ PHP versions simultaneously
<?php // file_upload.php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $uploadDir = "uploads/"; if (!is_dir($uploadDir)) { mkdir($uploadDir, 0777, true); // create folder if not exists } $fileName = basename($_FILES['userfile']['name']); $targetFile = $uploadDir . time() . "_" . $fileName; // unique filename if (move_uploaded_file($_FILES['userfile']['tmp_name'], $targetFile)) { echo "✅ File uploaded successfully!<br>"; echo "Stored as: " . htmlspecialchars($targetFile); } else { echo "❌ File upload failed!"; } } else { ?> <form enctype="multipart/form-data" method="POST"> <input type="file" name="userfile" required> <button type="submit">Upload File</button> </form> <?php } ?>

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.4.120.0040.00817.81
8.4.110.0070.00617.53
8.4.100.0100.00317.75
8.4.90.0050.00617.53
8.4.80.0060.00717.80
8.4.70.0090.00317.68
8.4.60.0080.00417.77
8.4.50.0060.00517.85
8.4.40.0070.00617.93
8.4.30.0060.00417.28
8.4.20.0080.00417.79
8.4.10.0080.00417.63
8.3.250.0080.00416.64
8.3.240.0070.00516.84
8.3.230.0080.00416.92
8.3.220.0070.00616.78
8.3.210.0050.00616.57
8.3.200.0060.00416.61
8.3.190.0070.00416.46
8.3.180.0060.00416.60
8.3.170.0080.00316.39
8.3.160.0050.00616.71
8.3.150.0060.00616.22
8.3.140.0050.00516.88
8.3.130.0080.00316.55
8.3.120.0050.00516.88
8.3.110.0050.00516.53
8.3.100.0090.00416.52
8.3.90.0070.00516.70
8.3.80.0090.00316.77
8.3.70.0090.00216.43
8.3.60.0050.00616.52
8.3.50.0040.00716.63
8.3.40.0020.00717.57
8.3.30.0070.00317.42
8.3.20.0080.00317.61
8.3.10.0060.00517.52
8.3.00.0080.00317.56
8.2.290.0090.00216.74
8.2.280.0050.00616.82
8.2.270.0070.00316.41
8.2.260.0120.00616.02
8.2.250.0130.00316.20
8.2.240.0110.00616.04
8.2.230.0160.00316.14
8.2.220.0130.00616.46
8.2.210.0150.00315.94
8.2.200.0100.00516.17
8.2.190.0110.00615.83
8.2.180.0130.00316.37
8.2.170.0120.00817.14
8.2.160.0100.00617.44
8.2.150.0130.00617.20
8.2.140.0120.00517.12
8.2.130.0110.00517.23
8.2.120.0100.00717.00
8.2.110.0130.00417.29
8.2.100.0120.00217.16
8.2.90.0110.00716.96
8.2.80.0120.00516.97
8.2.70.0120.00417.32
8.2.60.0140.00317.21
8.2.50.0140.00416.97
8.2.40.0120.00417.13
8.2.30.0100.00517.13
8.2.20.0110.00417.16
8.2.10.0120.00317.01
8.2.00.0110.00616.85

preferences:
28.89 ms | 403 KiB | 5 Q