Проверка имени файла с помощью PHP ("a-z", "0-9" и "-")

Какой лучший способ проверки имени файла с помощью PHP и как я могу это сделать?

Я хочу проверить, содержит ли имя файла только "a-z", "0-9" и "-". Также убедитесь, что в имени файла нет заглавных букв.

$file = 'the-name.ext';

if ($file == 'only contains a-z, 0-9 or "-"' // HOW TO
&& $file == 'lowercasse'  // HOW TO
&& $file == 'a-z')  // HOW TO
{
    // upload code here
}
else{
    echo 'The file "' . $file . '"was not uploaded. The file can only contain "a-z", "0-9" and "-". Allso the files must be lowercasse. ';
}

В итоге я сделал что-то вроде этого, чтобы избавиться от расширения файла:

$filename = 'fil-name.jpg';
$filname_without_ext = pathinfo($filename, PATHINFO_FILENAME);
if(preg_match('/^[a-z0-9-]+$/',$filname_without_ext)) {
   echo'$file is valid';
} else {
   echo'$file is not valid';
}
6
задан Henders 9 August 2016 в 14:59
поделиться