3v4l.org

run code in 500+ PHP versions simultaneously
<?php // LAB 6 - PHP Exercises Combined ?> <!DOCTYPE html> <html> <head> <title>Lab 6 PHP Exercises</title> <style> .blue-text { color: blue; font-size: 14px; } table, th, td { border: 1px solid black; border-collapse: collapse; padding: 5px; } </style> </head> <body> <h2>Exercise 1</h2> <?php // Exercise 1: Change paragraph content from "HTML" to "JavaScript" $para = "HTML"; if(isset($_POST['change_text'])) { $para = "JavaScript"; } ?> <p><?php echo $para; ?></p> <form method="post"> <button name="change_text">Change Text</button> </form> <!-- Moving to Exercise 2 --> <h2>Exercise 2</h2> <?php // Exercise 2: Change style of paragraph with "JavaScript" $js_text = "JavaScript"; ?> <p class="blue-text"><?php echo $js_text; ?></p> <!-- Moving to Exercise 3 --> <h2>Exercise 3</h2> <?php // Exercise 3: Random number guess $message = ""; $rand = rand(1,10); if(isset($_POST['guess'])) { $user_guess = intval($_POST['user_guess']); $message = ($user_guess == $rand) ? "Good Work" : "Not matched (Answer was $rand)"; } ?> <form method="post"> <input type="number" name="user_guess" min="1" max="10" required> <button name="guess">Guess</button> </form> <p><?php if(isset($message)) echo $message; ?></p> <!-- Moving to Exercise 4 --> <h2>Exercise 4</h2> <?php // Exercise 4: Multiplication and division $result = ""; if(isset($_POST['calc'])) { $num1 = floatval($_POST['num1']); $num2 = floatval($_POST['num2']); $result = "Multiplication: ".($num1*$num2).", Division: ".($num2!=0 ? $num1/$num2 : "Cannot divide by zero"); } ?> <form method="post"> <input type="number" name="num1" step="any" placeholder="Number 1" required> <input type="number" name="num2" step="any" placeholder="Number 2" required> <button name="calc">Calculate</button> </form> <p><?php if(isset($result)) echo $result; ?></p> <!-- Moving to Exercise 5 --> <h2>Exercise 5</h2> <?php // Exercise 5: Temperature conversion function c_to_f($c){ return ($c*9/5)+32; } function f_to_c($f){ return ($f-32)*5/9; } $temp_result = ""; if(isset($_POST['convert_temp'])) { $temp = floatval($_POST['temp']); $unit = $_POST['unit']; if($unit=="C") $temp_result = "$temp °C = ".c_to_f($temp)." °F"; else $temp_result = "$temp °F = ".f_to_c($temp)." °C"; } ?> <form method="post"> <input type="number" name="temp" step="any" required> <select name="unit"> <option value="C">Celsius</option> <option value="F">Fahrenheit</option> </select> <button name="convert_temp">Convert</button> </form> <p><?php if(isset($temp_result)) echo $temp_result; ?></p> <!-- Moving to Exercise 6 --> <h2>Exercise 6</h2> <?php // Exercise 6: Angle type $angle_result = ""; if(isset($_POST['check_angle'])) { $angle = floatval($_POST['angle']); if($angle>0 && $angle<90) $angle_result = "Acute angle"; elseif($angle==90) $angle_result = "Right angle"; elseif($angle>90 && $angle<180) $angle_result = "Obtuse angle"; elseif($angle==180) $angle_result = "Straight angle"; else $angle_result = "Invalid angle"; } ?> <form method="post"> <input type="number" name="angle" min="0" max="180" required> <button name="check_angle">Check Angle</button> </form> <p><?php if(isset($angle_result)) echo $angle_result; ?></p> <!-- Moving to Exercise 7 --> <h2>Exercise 7</h2> <?php // Exercise 7: Reverse bits $rev_bits = ""; if(isset($_POST['rev_bits'])) { $num = intval($_POST['num_bits']); $bin = decbin($num); $rev_bin = strrev($bin); $rev_bits = bindec($rev_bin); } ?> <form method="post"> <input type="number" name="num_bits" required> <button name="rev_bits">Reverse Bits</button> </form> <p><?php if(isset($rev_bits)) echo "Reversed: ".$rev_bits; ?></p> <!-- Moving to Exercise 8 --> <h2>Exercise 8</h2> <?php // Exercise 8: Sum of cubes $sum_cubes = ""; if(isset($_POST['sum_cubes'])) { $n = intval($_POST['num_cubes']); $sum = 0; for($i=1;$i<=$n;$i++) $sum += $i**3; $sum_cubes = "Sum of cubes = ".$sum; } ?> <form method="post"> <input type="number" name="num_cubes" required> <button name="sum_cubes">Calculate Sum of Cubes</button> </form> <p><?php if(isset($sum_cubes)) echo $sum_cubes; ?></p> <!-- Moving to Exercise 9 --> <h2>Exercise 9</h2> <?php // Exercise 9: Form validation with PHP $nameErr = $emailErr = $genderErr = $commentErr = ""; $name = $email = $gender = $comment = ""; if(isset($_POST['submit_form'])) { if(empty($_POST['name']) || !preg_match("/^[a-zA-Z ]*$/",$_POST['name'])) $nameErr="Invalid Name"; else $name=$_POST['name']; if(empty($_POST['email']) || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) $emailErr="Invalid Email"; else $email=$_POST['email']; if(empty($_POST['gender'])) $genderErr="Select Gender"; else $gender=$_POST['gender']; if(strlen($_POST['comment'])>256) $commentErr="Comment too long"; else $comment=$_POST['comment']; } ?> <form method="post"> Name: <input type="text" name="name" required> <span><?php echo $nameErr; ?></span><br> Email: <input type="email" name="email" required> <span><?php echo $emailErr; ?></span><br> Website: <input type="text" name="website"><br> Comment: <textarea name="comment"></textarea> <span><?php echo $commentErr; ?></span><br> Gender: <input type="radio" name="gender" value="Female"> Female <input type="radio" name="gender" value="Male"> Male <input type="radio" name="gender" value="Other"> Other <span><?php echo $genderErr; ?></span><br> <button name="submit_form">Submit</button> </form> <p>Your Input: <?php echo "$name, $email, $gender, $comment"; ?></p> <!-- Moving to Exercise 10 --> <h2>Exercise 10</h2> <?php // Exercise 10: Course Evaluation Form if(isset($_POST['evaluate'])) { $sname = $_POST['sname']; $semail = $_POST['semail']; $edate = $_POST['edate']; $topic = $_POST['topic']; $rate = $_POST['rate']; if(empty($sname) || empty($semail)) { echo "<p>Name and Email are required!</p>"; } else { echo "<table>"; echo "<tr><th>Student Name</th><td>$sname</td></tr>"; echo "<tr><th>Student Email</th><td>$semail</td></tr>"; echo "<tr><th>Date</th><td>$edate</td></tr>"; echo "<tr><th>Favourite Topic</th><td>$topic</td></tr>"; echo "<tr><th>Rate</th><td>$rate</td></tr>"; echo "</table>"; } } ?> <form method="post"> Student Name: <input type="text" name="sname" required><br> Student Email: <input type="email" name="semail" required><br> Evaluation Date: <input type="datetime-local" name="edate" required><br> Favourite Topic: <select name="topic"> <option>HTML</option> <option>CSS</option> <option>JavaScript</option> <option>PHP-MySQL</option> </select><br> Rate 1-5: <input type="number" name="rate" min="1" max="5" required><br> <button name="evaluate">Evaluate</button> </form> </body> </html>

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.5.30.0230.00516.80
8.5.20.0140.00516.71
8.5.10.0230.00716.60
8.5.00.0110.00816.67
8.4.180.0290.01119.80
8.4.170.0340.00819.95
8.4.160.0300.01219.76
8.4.150.0330.00919.81
8.4.140.0390.01017.63
8.4.130.0340.00617.95
8.4.120.0400.00517.71
8.4.110.0360.01017.95
8.4.100.0360.01317.96
8.4.90.0300.00317.75
8.4.80.0390.00817.93
8.4.70.0340.01017.86
8.4.60.0380.00418.09
8.4.50.0220.00818.00
8.4.40.0390.01017.66
8.4.30.0330.01317.37
8.4.20.0400.00817.50
8.4.10.0320.01217.66
8.3.300.0080.01018.62
8.3.290.0320.00818.36
8.3.280.0320.00818.46
8.3.270.0350.00716.86
8.3.260.0400.00616.90
8.3.250.0280.00616.87
8.3.240.0220.00616.84
8.3.230.0290.00816.86
8.3.220.0350.00516.84
8.3.210.0360.00916.78
8.3.200.0170.00416.85
8.3.190.0180.00216.86
8.3.180.0330.00816.84
8.3.170.0270.00316.79
8.3.160.0220.00316.81
8.3.150.0190.00316.72
8.3.140.0200.00216.70
8.3.130.0290.00616.73
8.3.120.0210.00616.79
8.3.110.0190.00316.56
8.3.100.0200.00616.70
8.3.90.0250.00616.56
8.3.80.0350.00916.86
8.3.70.0260.00316.78
8.3.60.0200.00416.91
8.3.50.0220.00316.62
8.3.40.0230.00417.98
8.3.30.0300.00517.91
8.3.20.0240.00818.09
8.3.10.0300.00818.09
8.3.00.0240.01217.96

preferences:
53.52 ms | 917 KiB | 4 Q