Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
php свой

Зарегистрирован: 04.04.2007 Сообщения: 118
|
|
Вернуться к началу |
|
 |
Flint3 модератор

Зарегистрирован: 11.05.2005 Сообщения: 1644 Откуда: Московская область (55.43с.ш 38.30 в.д).
|
Добавлено: 17.08.2007 09:29 Заголовок сообщения: |
|
|
Про "регексы" здесь http://www.forum.alyno.ru/phpBB2/viewtopic.php?p=67250#67250 _________________ Кто ни разу не тонул, тот мелко плавал.
-------------------------------------------------------
Core 2 Duo E4400 2гб ОЗУ Sata400+250Gb GF8600GTS Кучка DVB-S/S2 карт Stab HH120 LNB Titanium TTG Альяно-Премиум Супрал 1.1+0.6 КонтинентТВ |
|
Вернуться к началу |
|
 |
php свой

Зарегистрирован: 04.04.2007 Сообщения: 118
|
|
Вернуться к началу |
|
 |
alexaga бывалый

Зарегистрирован: 01.04.2006 Сообщения: 1568 Откуда: 58°42'N / 59°33'E
|
Добавлено: 17.08.2007 12:55 Заголовок сообщения: |
|
|
Не, можно продолжить. а Flint3 думаю добавит в инструкцию.
Недавно DUSHiK (разработчик модов Скайнета) сделал интересный хелп. Очень помгает как "заядлому" рыбаку так и новечку.
Так как есть практически всё тут на форуме целиком хелп выкладывать не стоит. А добавить вот только это. (Хелп можете найти на пирамиде)
Вот взято из него.
------------------------------------------------------------------------------------
Рассмотрим все поподробнее:
1) Это стандартный цвет, задаваемый тремя группами в шестнадцатеричном виде. В программах для рисования или корректировки фоток (например, фотошоп) при выборе цвета можно увидеть этот самый код. Тут все стандартно (FFFFFF – белый, FF0000 – красный, 00FF00 – зеленый и тд)
2) Здесь возможны 2 варианта:
- b – определять по содержимому (в начале файла)
- t – определять по полю content-type
3) Это самая важная и сложная часть. Здесь задается условие отбора.
Если способ определения файла b, тогда условия задаются с помощью регулярных выражений, позаимствованных в UNIX.
Формат следующий: сначала ставится знак «^» - это определение начала строки.
Далее перечисляются символы, которые идут по порядку в файле (например, ^Rar, означает, что все файлы начинающиеся с символов Rar. удовлетворяют условию).
Если в файле на каком-то месте возможен любой произвольный символ, то его можно обозначить «.» (точкой) (например, ^RIFF....AVI, означает, что данному условию удовлетворяют файлы, у которых первые 4 символа RIFF, далее идут любые 4 символа, а далее 3 символа AVI).
Если вам нужно описать последовательность любых символов неопределенной длины, тогда применяется сочетание «.*» (вообще звездочка указывает на повторение символа 0 или более раз, а так как перед ней стоит точка, значит повторяться будет любой символ) (например, ^PK.*NAV, означает, что данному условию удовлетворяют файлы, у которых первые два символа PK, а далее в любом месте начала файла есть последовательность символов NAV).
Если вам нужно в качестве символа указать точку (например фильтровать расширения .mp3, точка все таки задана явно), то просто точку поставить нельзя, так как программа определит ее как любой символ, поэтому применяется сочетание символов «\.» (например, ^PK.*\.wmv, означает, что файлам, у которых первые два символа PK, далее в любом месте начала файла есть последовательность .wmv, это условие удовлетворяет).
Если последовательность символов может быть написана в разных регистрах (например, rar или RAR), тогда применяется выражение (?i) перед этой последовательностью (например, ^PK.*(?i)MANIFEST, означает, что файлам, в начале которых 2 знака PK и в любом месте встречается последовательность MANIFEST, написанная в любом регистре, хоть MaNifeSt, удовлетворяет условию).
Возможно указание условий (альтернативы) выбора. Например, к какой-то группе могут принадлежать файлы с разным началом, тогда применяется следующее выражение ^(усл1|усл2| … |услN) (Например, ^.*<(?i)(html|!doctype|head|body), означает, что файлам, содержащим в любом месте последовательность
Вроде основные описал, вот список всех метасимоволов (символы обозначающие группы других символов) и их модификаторов:
\ - считать следующий метасимвол как обычный символ.
^ - начало строки
. - один произвольный символ.
$ - конец строки
| - альтернатива (или)
() - группировка
[] - класс символов
Метасимволы имеют модификаторы (пишутся после метасимвола):
* - повторяется 0 или большее число раз
+ - повторяется 1 или большее число раз
? - 1 или 0 раз
{n} - точно n раз
{n,} - по меньшей мере раз
{n,m} - не меньше n, но и не больше m
Если способ определения файла t, тогда просто вписывается значение поля content-type.
(например, ^image/jpeg – означает картинки в формате JPEG, ^application/msword – означает документы, написанные в Word'е)
4) Здесь указывается присваиваемое расширение файлу и через «;» группы файлов (необязательно).
В конце файла обычно пишут строчку
404040 b . bin;ALL,
которая удовлетворяет всем файлам (означает, что если файл не попал не в одно условие, ему присваивается расширение bin).
Совет: внимательно расставляйте порядок условий, иначе можно не получить желаемый результат.
Например, я хочу ловить rar-архивы с музыкой в формате mp3, а другие rar-архивы я ловить не хочу. Если у меня будет последовательность записана так:
008000 b ^Rar! rar
008000 b ^Rar!.*\.mp3 mp3.rar
И в программе отмечу плюсом группу mp3.rar и не отмечу rar, то я ничего не поймаю, так как архивы с музыкой также попадают под общее определение архивов, а я их не указал. Чтобы все заработало, нужно поменять порядок строк (поменять местами):
008000 b ^Rar!.*\.mp3 mp3.rar
008000 b ^Rar! rar
---------------------------------------------------------------------------
Эти основы написал DUSHiK. |
|
Вернуться к началу |
|
 |
Flint3 модератор

Зарегистрирован: 11.05.2005 Сообщения: 1644 Откуда: Московская область (55.43с.ш 38.30 в.д).
|
Добавлено: 17.08.2007 15:33 Заголовок сообщения: |
|
|
Спасибо, Александр, добавил. _________________ Кто ни разу не тонул, тот мелко плавал.
-------------------------------------------------------
Core 2 Duo E4400 2гб ОЗУ Sata400+250Gb GF8600GTS Кучка DVB-S/S2 карт Stab HH120 LNB Titanium TTG Альяно-Премиум Супрал 1.1+0.6 КонтинентТВ |
|
Вернуться к началу |
|
 |
php свой

Зарегистрирован: 04.04.2007 Сообщения: 118
|
Добавлено: 18.08.2007 10:24 Заголовок сообщения: |
|
|
to Flint3.
Новую тему не стал начинать. вот к примеру беру разные файлы SQL, Открываю в HEX и что получается, что начала у всех 3-х разные:
Как быть?
Можно ли добавить "символы" из середины, т.к они повторяются во многих SQL файлах:
Или есть какой-нить другой способ рыбалки БД. _________________ XMLSEO сервис купли-продажи Яндекс.XML лимитов и туннелирования Yandex и Google выдачи |
|
Вернуться к началу |
|
 |
Flint3 модератор

Зарегистрирован: 11.05.2005 Сообщения: 1644 Откуда: Московская область (55.43с.ш 38.30 в.д).
|
Добавлено: 18.08.2007 14:02 Заголовок сообщения: |
|
|
php писал(а): | Открываю в HEX и что получается, что начала у всех 3-х разные: |
Не уверен, базами не увлекался, но впечатление такое, что в первых байтах описание не самих баз, а интернет-ресурсов, где они лежат. Ну или лежали.
php писал(а): | Можно ли добавить "символы" из середины, т.к они повторяются во многих SQL файлах: |
Если эти сигнатуры характерны для SQL, то почему бы не попробовать.
Попытка-не пытка.  _________________ Кто ни разу не тонул, тот мелко плавал.
-------------------------------------------------------
Core 2 Duo E4400 2гб ОЗУ Sata400+250Gb GF8600GTS Кучка DVB-S/S2 карт Stab HH120 LNB Titanium TTG Альяно-Премиум Супрал 1.1+0.6 КонтинентТВ |
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|