Forum Webscript.Ru
Программирование => PHP => Тема начата: Abram от 06 Июня 2003, 12:39:30
-
Помогите написать скрипт который убивает все файлы типа, который я указываю. Как вобще проверить тип файла(exe, pas, bat, php)?Спасибо
-
$file = "file.exe";
$file_comp = explode(".",$file);
if (($file_comp[count($file_comp)-1] == "exe") || ($file_comp[count($file_comp)-1] == "pas") || ($file_comp[count($file_comp)-1] == "bat") || ($file_comp[count($file_comp)-1] == "php")) {
if (file_exists($file)) {unlink ($file);}
}
?>
-
надо только по расширению файлы искать или именно по типу (по внутренностям, формату...)??
-
кошмарный код
-
RomikChef:
кошмарный код
поддерживаю.
лучше было бы по таблице проверять, если уж на то пошло...
-
мдя...
типа защита от буратин убийц из космоса.
кто ж по расширению проверяет...
надо тогда уж MIME проверять, ИМХО
-
ну если чел для себя только делает и злым юзверям не будет скрипт давать играться - тогды можно и так :) но все атки некрасиво получается (как код так и идея)
-
MIME - тоже не выход, потому что его (если не ошибаюсь) посылает браузер. А даже если не браузер, то я всё равно сомневаюсь, что сервер будет перекапывать внутренности файла, чтобы верно выставить его MIME - скорее всего просто на имя и расширение смотрит.
Вот один скрипт, хотя это не совсем то,что нужно, но поддерживаемые форматы определяет наверняка:
http://www.hotscripts.com/Detailed/10092.html
А вообще чтобы делать подобную проверку, нужно покопаться в RFC и спецификациях нужных форматов файлов и писать проверку содержимого под себя. Хотя подозреваю, что где-то что-то подобное уже написано...
Edited:
Пардон, вот линк прямо на домашнюю страницу:
http://getid3.sourceforge.net/
Не смотрите на id3 в названии - поддерживается далеко не только он.
-
FreeSpace
если я ничего не путаю, то есть стандартная юниксовая функция - то ли touch, то ли file, которая определяет тип файла исходя из первых байтов и какой-то своей таблицы.
-
Xander
Прости, но на ls
, cd
и cat /etc/passwd
мои познания никсов заканчиваются :)
Так что поспорить не могу...