3v4l.org

run code in 300+ PHP versions simultaneously
<?php // mock $_GET['f'] = 'imagenes'; $_GET['folder'] = 'foods'; $_GET['type'] = 'salads'; $_GET['desc'] = 'green'; $_GET['dim'] = '50'; $_GET['id'] = '23'; // define expected $params = ['f', 'folder', 'type', 'desc', 'dim', 'id']; // loop over and output: /imagenes/foods/salads/green_50/23.png $path = null; foreach ($params as $key => $param) { if (isset($_GET[$param])) { $path .= ($param == 'dim' ? '_' : '/').basename($_GET[$param]); unset($params[$key]); } } $path .= '.png'; echo $path; __halt_compiler(); // check all params were passed if (!empty($params)) { die('Invalid request'); } // check file exists if (!file_exists($path)) { die('File does not exist'); } // check file is image if (!getimagesize($path)) { die('Invalid image'); } // all good serve file header("Content-Type: image/png"); header('Content-Length: '.filesize($path)); readfile($path);
Output for 7.1.0 - 7.1.25, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6 - 8.3.7
/imagenes/foods/salads/green_50/23.png
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 /imagenes/foods/salads/green_50/23.png

preferences:
151.02 ms | 402 KiB | 172 Q