PermLUG
|
Пермская группа пользователей Linux |
|
ОблакоВход для пользователейНавигация |
Список "Регулярные выражения" - какая длина поля?!
m0lekula, 03.10.2008 — 18:20
Доброго времени... Сегодня понадобилось нарисовать достаточно длинное предложение PCRE в WEB-морде SAMS. Это баг или фича? FreeBSD 6.1
|
Новые записи в блогахАктивные обсуждения форума
|
| Пермская группа пользователей Linux, 2003—2008 |
Думаю тикет завести стоит, похоже на фичу в виде баги.
--
NixDev - Open Source solutions for life
А можно это выражение сюда запостить? Мне УЖАСНО интересно, что там можно написать в 91 символ.
Кстати, запятые в регекспах в самсе не приветствуются. Кто быстрее всех скажет почему? ;)
---------------------------------------------
Fedora Core release 2
httpd-2.0.52-3.1asp
mysql-3.23.58
php-4.3.9-3
squid-2.5.STABLE6-2asp
samba 3.2.0
sams-1.0.3
samsredir
ip+ncsa (на это не надолго)
Ну почему ж нельзя-то?
1. "(88x31|120x60|120x240|120x600|125x125|234x60|392x72|400x40|468x60|470x60|1440*900|600x90|240x180)"
2. "\/ad(js\.php\?|x\.js|fetch|log|click|view|cycle|vert|scrip|show|frame|ima?ge?|content|runner|serve|space|swrapper)"
Пример позаимствован из правил баннерорезки сквидгарда.
Первое правило 97, второе 114 символов.
FreeBSD 6.1
Apache 2.0.63
MySQL 5.0.51
PHP 5
Squid 2.6
Samba 3.0.28
SAMS v. 1.0.3
Ну, честно говоря, нет смысла в таких длинных выражениях.
Такие могут дольше компилиться и медленнее выполняться.
Не проще ли разбить?
По теме - это наверное вопрос не по самсу а по pcre+php+mysql:
The maximum length of a compiled pattern is 65539 (sic) bytes if PCRE is compiled with the default internal linkage size of 2.
Соотвественно смотрим в длину поля squidctrl:
CREATE TABLE `urls` ( `url` char(90), `type` char(25)) TYPE=MyISAM;Оно?
---------------------------------------------
Fedora Core release 2
httpd-2.0.52-3.1asp
mysql-3.23.58
php-4.3.9-3
squid-2.5.STABLE6-2asp
samba 3.2.0
sams-1.0.3
samsredir
ip+ncsa (на это не надолго)
Походу оно... Только чего-то я не совсем понял:
и
Это кажется как раз про САМС. ;)
А по поводу длины... Почему-то ни сквидгард, ни режик как-то особо не заморачиваются по поводу длины предложения.
Пример мой из реальных правил сквидгарда.
Но сам я в этом вопросе не шибко силен, потому спорить не буду.
FreeBSD 6.1
Apache 2.0.63
MySQL 5.0.51
PHP 5
Squid 2.6
Samba 3.0.28
SAMS v. 1.0.3
А это комплексный подход: раскручивается вся цепочка приложений , в которых может обрезаться строка, изучаются ограничения, в конце концов выяснилось что это ограничение в таблице.
Ну, ты можешь попробовать сделать таблицу с увеличенной длиной поля (если с мускулем не работал - не рискуй)
Что значит "почему-то"? Они же читают строки из файла в отличие от самса, который читает из записи бд с ограниченной длиной поля.
---------------------------------------------
Fedora Core release 2
httpd-2.0.52-3.1asp
mysql-3.23.58
php-4.3.9-3
squid-2.5.STABLE6-2asp
samba 3.2.0
sams-1.0.3
samsredir
ip+ncsa (на это не надолго)