Программный способ определения типа файла...

stm7884696

Народ, кто знает как определить тип файла не по его расширению (оно может быть другим, а может его и вообще не быть) а программным способом...
и что бы это еще и на вебсервере работало под никсами...
?:?

sergey_m

man file

Julie16

Есть такой способ. Большинство типов файлов содержат в начале некоторые магические символы(обычно 2 - 4). По ним и можно попытаться определить тип файла.

stm7884696

что за ман файл и что за магические символы..
Я сам в этом ни бум-бум, так что хотелось бы поподробнее..

sergey_m

Набери команду man file на своём хостинге.

Julie16

Блина. Ну вот пример:
.chm - начинаются с ITSF
.dll && .exe - начинаются с MZ
.gif - начинаются с GIF

stm7884696

в смысле man имя_файла
в шеле?

sergey_m

Нет, буквально.
http://www.freebsd.org/cgi/man.cgi?query=file
P.S. Когда я впервые услышал совет 'man file', я тоже несколько раз переспросил

stm7884696

прикольно, поботаю...

Julie16

А это программный способ? Мне кажется что ему нужно вызвать функцию для определения типа файла(из PHP )... Это же не то.

stm7884696

а что, напряги будут ?
да, действительно, моему пхп надо узнать, что за файл на винте валяется....

Julie16

Ну, file - это отдельная программа, насколько я помню. Если ты согласен ее запускать, а потом парсить output - то пожалуйста.

sergey_m

Ну exec хуле. Конечно, нужно прочитать главу про безопасность exec в php. Где читать - не знаю, но таковая должна быть. В случае perl нужно читать perlsec(1).

Marinavo_0507

У меня в системе программа file использует некую libmagic.so.1

Julie16

Тогда man libmagic

ava3443

Автору нужны скорее bindings к libmagic:
http://pecl.php.net/package/fileinfo

sergey_m

О, готовое решение.

stm7884696

типа собрать пхп с поддержкой
libmagic как extension и потом работать в пхп с ее функциями ?

ava3443

ну типа того
P.S. ты только не подумай, что я про PHP что-либо знаю

stm7884696

ладно, спасибо всем... седня блихе к вечеру попробую...
о результатах отпишу..

ava3443

P.P.S. Хотя, похоже, придётся мне повозиться с PHP, доделывая Eventum под свои нужды...

stm7884696

а че это такое?
и для чего надо...
(ответте по русски плз...)

ava3443

Система для ведения багов, запросов по добавлению функциональности и поддержке. Интегрирована с CVS. Изначально была разработана и использовалась в компании MySQL.

tokuchu

Не... не пойдёт - пропустил, что ему надо из скрипта это выяснять.

puare

http://ru.php.net/mime_content_type может поможет? Вообще, поботай результаты поиска в пхпшной доке по слову "mime" или там "mime type"... Должно помочь я думаю
Оставить комментарий
Имя или ник:
Комментарий: