| |
|
|
| | Доброе время суток.
Есть задача: Сделать файло-обменник только для определенных файлов, т.е. для картинок (всех), для файлов Microsoft Office, для MCD файлов, и для Архивов (только если в них есть все перечисленные выше файлы).
Причем проверка просто на расширение - не дело (потому что можно просто изменить его).
Начал копать форматы файлов, но вот не знаю, что делать с mcd файлами файлами. Кто может подсказать на эту тему что-нить?
И еще: есть ли функции для работы с архивами? (ну чтоб можно было определить настоящий формат файлов, которые находятся в архиве).
И вообще все советы выслушаю и приму во внимание.
Заранее спасибо! | |
| |
|
|
|
| |
|
|
| |
для: Loki
(14.02.2007 в 16:48)
| | | Спасибо, скорее всего это оно | |
| |
|
|
| |
|
|
| |
для: NovikovMA
(14.02.2007 в 15:37)
| | | Есть один пример: (Взят с книги PHP Ворое издание)
<?php
$path = "d:/main/scripts/index.php";//Путь может быть разный
echo strrchr($path, "."); //По идеии должен выдать расширение . php
//Потом дальше код для расширения
?>
|
| |
| |
|
|
| |
|
|
| |
для: Staglu
(14.02.2007 в 18:05)
| | | Не,ну человек же написал,что его интересует не расширение,а реальный формат файла | |
| |
|
|
| |
|
|
| |
для: Staglu
(14.02.2007 в 18:05)
| | | Также pathinfo (строка); возвращает массив [extension] - расширение
Возможно вам пригодяться и другие элементы:
<?php
$string = 'text/text.txt';
$array_info = pathinfo($string);
print_r($array_info);
?>
|
Выводит:
Array ( [dirname] => text [basename] => text.txt [extension] => txt )
|
| |
| |
|
|
| |
|
|
| |
для: LEM
(14.02.2007 в 19:06)
| | | не, это не совсем то, что надо.
потому что если переименовать text.txt в tex.mp3, то она выдаст mp3,а мне нужет нормальный формат | |
| |
|
|
| |
|
|
| |
для: NovikovMA
(14.02.2007 в 19:09)
| | | Вы не сможете определить реальный формат. Можно только попытаться. | |
| |
|
|
| |
|
|
| |
для: Unkind
(14.02.2007 в 20:00)
| | | Разве что попробовать краткий анализ текста файла на некоторые ключевые слова... | |
| |
|
|
| |
|
|
| |
для: Ralph
(14.02.2007 в 21:56)
| | | Ключевые слова в mp3 файле?
Там их просто нет ))
Вообще-то подсказали функцию mime_content_type, вроде это оно, только php говорит, что
Call to undefined function: mime_content_type()
хотя в описании она есть и php=4.30
а есть у кого-нить описания форматов?
в google не отправлять, нашел только старый rtf формат из офисовских... | |
| |
|
|
| |
|
|
| |
для: NovikovMA
(14.02.2007 в 22:46)
| | | >а есть у кого-нить описания форматов?
Не то ищете. Ищите лучше как можно больше разных MIME-типов интересующих вас форматов и налаживайте определени его определение (там нужна какая-то библиотека). Это самый надежный способ. Проблема только в том. что один и тот же формат может давать разные миме, но это решается сбором статистики или поиском. | |
| |
|
|
| |
|
|
| |
для: Киналь
(14.02.2007 в 22:52)
| | | Спасибо, буду пинать админов )) | |
| |
|
|
| |
|
|
| |
для: NovikovMA
(14.02.2007 в 23:02)
| | | Кстати, если что, то нашел список mime типов:
графические:
image/bmp bmp
image/gif gif
image/jpeg jpeg jpg jpe
image/png png
image/tiff tiff tif
аудио:
audio/basic au snd
audio/midi mid midi kar
audio/mpeg mpga mp2 mp3
audio/x-pn-realaudio ram rm
audio/x-pn-realaudio-plugin rpm
audio/x-realaudio ra
audio/x-wav wav
видео:
video/mpeg mpeg mpg mpe
video/quicktime qt mov
video/x-msvideo avi
video/x-sgi-movie movie
модели:
model/vrml wrl vrml
текстовые:
text/css css
text/html html htm
text/plain asc txt
text/richtext rtx
text/rtf rtf
text/sgml sgml sgm
text/xml xml
архивы:
application/x-gtar gtar
application/x-tar tar
application/zip zip
приложения Microsoft:
application/msword doc
application/vnd.ms-excel xls
application/vnd.ms-powerpoint ppt
типы MIME для корректной работы wap:
application/vnd.wap.wbxml wbxml
application/vnd.wap.wmlc wmlc
application/vnd.wap.wmlscriptc wmlsc
image/vnd.wap.wbmp wbmp
text/vnd.wap.wml wml
text/vnd.wap.wmlscript wmls
другие приложения:
application/octet-stream bin dms lha exe class
application/pdf pdf
application/postscript ai eps ps
application/x-shockwave-flash swf | |
| |
|
|
| |
|
|
| |
для: NovikovMA
(15.02.2007 в 00:33)
| | | 1) Смотрите комментарии к этой функции на php.net.
2) MIME можно подделать. | |
| |
|
|
| |
|
|
| |
для: Unkind
(15.02.2007 в 00:53)
| | | >...какие в mp3 могут быть ключевые слова...
Вот я с телефона из разных типов файлов навыдергивал первые байты:
ZIP
PK?`?/<(`?е*HiddenInside.exeн?t PKф?(6ЎпМ?щИindex.phpнVЭnЪ PKK¬ияclan/users/12345.datК
| RAR
Rar!П?sў) Rar!П?sИІt ?, Rar!П?sІ?t ?,?
| WAV
RIFF4\WAVEfmt ? RIFF0зWAVEfmt @@data
| JPEG
яШяаJFIFяю;CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 75
яШяаJFIFddямDu
|
| |
| |
|
|
| |
|
|
| |
для: Ralph
(15.02.2007 в 01:44)
| | | По моему,можно найти какие то схожие фрагменты...А был бы у меня компьютер и хороший архив разнообразных файлов,думаю,я изучил бы их и что-нибудь да придумал...А то,что ключевых слов нет,в чем то может быть и полезно,к примеру,если бы в тексте mp3-файла я обнаружил слова header,fsockopen или echo,я бы очень удивился и заинтересовался бы этим файлом поподробнее ;-) | |
| |
|
|
| |
|
|
| |
для: Ralph
(15.02.2007 в 01:51)
| | | если у вас сервер не настроен на исполнение файлов с расширением mp3 как php, то какая разница? | |
| |
|
|
| |
|
|
| |
для: Loki
(15.02.2007 в 10:43)
| | | необходимо сделать что-то вроде тематического файлообменника, причем есть явная причина не пускать туда видео и звук (т.к. это учебный сайт).
А то я боюсь, что его будут использовать как хранитель файлов и порева, что собссно не очень хотелось бы... | |
| |
|
|
| |
|
|
| |
для: NovikovMA
(16.02.2007 в 02:34)
| | | Единственный надежный способ который я знаю - перекомпиляция исходника (пережатие картинки, например). Во всех остальных случаях можно к файлу "паровозом" зацепить любые произвольные данные. Хочется надеяться, что есть менее ресурсоемкие способы... | |
| |
|
|
| |
|
|
| |
для: Loki
(16.02.2007 в 10:54)
| | | мне тоже ))
А что, если открывать потоком этот файл?
Можно что-нить найти из них?
На сколько я знаю, если открывать Word'овский документ потоком, то там будет поток типа
WordDocument, Workbook -это Excel.
А у видео есть что-нить похожее?
А в общем, чего это я, щас сам проверю )) | |
| |
|
|