<?php
$unclean_name = 'File name %20 %20 %2C Décor \/. /. . z \... y \...... x ./ “This name” is & 462^^ not = that grrrreat -][09]()1234747) sdlfjfkleq flekqjelkjqlk fjlkqe fqf';
$seperator = '_';
$fallback_name = 'generated__' . date('Y-m-d_H-m_A');
$max_chars = '180';
$file_extension = '....ta()r.gz[]';
echo str_file($unclean_name, $seperator, $fallback_name, $max_chars, $file_extension);
function str_file(
$str,
$sep = '_',
$default = '',
$trim = 180,
$ext = '') {
// file name filters used to clean and prepare a string
function str_file_filter(
$str,
$sep = '_',
$strict = false,
$trim = 180) {
$str = strip_tags(strtolower($str));
$str = preg_replace("/&#?[a-z0-9]{2,8};/i", '', $str);
$str = str_replace("%20", ' ', $str); //
$str = preg_replace("/\s+/", $sep, $str);
$str = preg_replace("/\.+/", '.', $str);
if ($strict) {
$str = preg_replace("/([^\w\d\\" . $sep . ".])/", '', $str);
} else {
$str = preg_replace("/([^\w\d\\" . $sep . "\[\]\(\).])/", '', $str);
}
return substr($str, 0, $trim);
}
// get or set a default file name in case all chars are trimmed from $str then ensure there is an id at tail
if (empty($str) && empty($default)) {
$str = 'no_name__' . date('Y-m-d_H-m_A') . '__' . uniqid();
} elseif (empty($str)) {
$str = $default;
}
// run $str and/or $ext through filters to clean up and remove special chars
return str_file_filter($str, $sep) . str_file_filter('.' . $ext, '', true);
} else {
return str_file_filter($str, $sep);
}
}
- Output for 7.0.0 - 7.0.2
- Parse error: syntax error, unexpected 'else' (T_ELSE), expecting end of file in /in/XWvHD on line 61
Process exited with code 255. - Output for 5.5.24 - 5.5.31, 5.6.8 - 5.6.17
- Parse error: syntax error, unexpected 'else' (T_ELSE) in /in/XWvHD on line 61
Process exited with code 255.
preferences:
157.16 ms | 1395 KiB | 28 Q