3v4l.org

run code in 300+ PHP versions simultaneously
<?php function prepareClientFilename($filename = '', $extension = '', $maxLength = 255) { $filename = strlen($filename) ? $filename : uniqid('fid_', true); $extension = rtrim(".{$extension}" , '.'); return substr($filename, 0, $maxLength - strlen($extension)) . $extension; } $tests = [ prepareClientFilename('this_is_a_string', 'txt'), prepareClientFilename(str_repeat(implode(range('a','z')), 9), 'pdf'), prepareClientFilename(str_repeat(implode(range('a','z')), 10), ''), prepareClientFilename(str_repeat(implode(range('a','z')), 10), 'csv'), prepareClientFilename('', 'jpeg', 10), prepareClientFilename('', 'mp4'), prepareClientFilename(), ]; var_export(array_combine($tests, array_map('strlen', $tests)));

preferences:
24.66 ms | 413 KiB | 5 Q