Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как определить формат файла (PHP)

3.0K
19 ноября 2006 года
NetWork
77 / / 10.08.2006
Сталкнулся с проблемой определения формата файла.

Как в PHP можно узнать какой формат имеет тот или иной файл. Я пролистал пару учебников не смог найти, что мне нужно. Подскажите как.

Хочу добавит, что мне нужно не просто узнать тип, а именно формат swf или gif и и т.д.
334
19 ноября 2006 года
HexEdit
809 / / 27.07.2006
Открывай файл двоично и проверяй сигнатуры файла.
Можно также поискать в инете регулярные выражения файлов.
4
19 ноября 2006 года
mike
3.7K / / 01.10.2002
Есть функция getimagesize, она может определить формат изображения.

Кроме того, в *nix'ах есть утилита file:

 
Код:
$a=`file $filename`;


man file
15K
23 ноября 2006 года
gruz0
71 / / 23.11.2006
Уважаемый mike, заметьте, что не у всех есть никсы :)
Ссылку на ман давать уж как минимум глупо, ибо у команды есть только один параметр :)

NetWork, тебе надо расширение файла отловить или именно его заголовок?
16K
23 ноября 2006 года
windoctor
19 / / 05.07.2006
в принципе юзай регулярные выражения или explode(). Если конечно я верно понял постановку задачи.
15
23 ноября 2006 года
shaelf
2.7K / / 04.05.2005
 
Код:
<?php
$string = "sjhfdh.sdhfgkljd.idsufg.gif";
$type = explode(".", $string);
echo $type[count($type) - 1];
?>

2gruz0
>>Уважаемый mike, заметьте, что не у всех есть никсы
Но сайты как правило на них крутятся.
>>Ссылку на ман давать уж как минимум глупо, ибо у команды есть только один параметр
Вы наверное гений, если как только в первый раз увидели никсы без man'a знали все команды и колличество аргументов...
256
23 ноября 2006 года
foxweb
1.0K / / 27.07.2005
и никто не вспомнил, что в PHP есть такая функция и имя ей

mime_content_type -- Detect MIME Content-type for a file
 
Код:
<?php
echo mime_content_type('php.gif') . "\n";
echo mime_content_type('test.php');
?>
15
23 ноября 2006 года
shaelf
2.7K / / 04.05.2005
только она возвращает Content-type, а не расширение))
355
23 ноября 2006 года
&lt;SCORP&gt;
786 / / 21.10.2006
а с каких пор отделение расширения из [полного] имени файла стало нетривиальной задачей, требующей обсуждения на форуме???? строковые функции никто не отменял! есть strrpos + substr, есть RegExp'ы, есть pathinfo, наконец! это если стоит задача определить тип файла по расширению. но тогда, помоему, использование mime_content_type предоставляеет болше информации -- и общий типа файла (text\image\octet-stream), так и более конкретный (html\gif\zip)
если необходимо определять истинный тип файла, независимо от его имени, то это уже задача совсем другая. я вижу выход только определить допустимый круг типов файлов и реализовать проверку принадлежности файла к каждому их них. да, это довольно некрасиво с точки зрения производительности, но других идей сходу не пришло и, если область допустимых типов файлов невелика, то это вполне можно использовать как решение
4
24 ноября 2006 года
mike
3.7K / / 01.10.2002
Может не будем гадать на кофейной гуще, и попросим NetWork'а уточнить задачу :)

2gruzO: ответ в таком виде как я дал, мне бы помог. Да думаю не только мне. Работать с PHP не зная что такая Unix/Linux и как работает man - профнепригодность (c). Кроме того, наверняка есть порты под Windows
8
24 ноября 2006 года
mfender
3.5K / / 15.06.2005
Вообще, насколько мне довелось общаться с компутерами и файлами, я понял, что для определения типа существуют расширения. Если нет расширения, то тип нужно указывать явно, дефолтом предполагая тот или иной тип файла.

IMHO, проблема явно высосана из пальца.
15K
24 ноября 2006 года
gruz0
71 / / 23.11.2006
 
Код:
$file = "image.gif";
$ext = substr($file,1+strrpos($file,"."));


Цитата: shaelf
Вы наверное гений, если как только в первый раз увидели никсы без man'a знали все команды и колличество аргументов...


Книжки читал, как ни странно.

8
24 ноября 2006 года
mfender
3.5K / / 15.06.2005
[COLOR=darkred]Учитывая внезапно пропавший интерес к теме автора, все предложенные вариации и начавшуюся флудильню, предлагаю темку прикрыть.[/COLOR]
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог