// cut from output, and store away for later re-inclusion, everything between <textarea> and <pre> tags
// (we do not want to touch those blocks as they may contain wanted whitespace)
$output=preg_replace_callback('/<textarea.*?[^\btextarea>\b]*?textarea>/si', "cb_text", $output);
$output=preg_replace_callback('/<pre.*?[^\bpre>\b]*?pre>/si', "cb_pre", $output);
// also cut and save <nocompress> tagged text (intentional excluded parts)
$output=preg_replace_callback('/<nocompress.*?[^\bnocompress>\b]*?nocompress>/si', "cb_text", $output);
// strip all whitespace at the beginning of every new line (but leave the linebreak intact)
$output=preg_replace('/(\r)?\n(\s*)/', "\n", $output);
// cut from output, and store away for later re-inclusion, everthing between <script> tags
// (we don't want to strip the linebreaks from script code since that would render the scripts non working)
$output=preg_replace_callback('/<script.*?[^\bscript>\b]*?script>/si', "cb_script", $output);
// strip all linebreaks and HTML-Comments from the output
// (since we first strip all linebreaks, even multi-line comments will get striped this way! :-))
$output = str_replace("\n" ," " ,$output );
$output = preg_replace('/\/\*.*?[^\b\*\/\b]*?.*?\*\//',"" , $output);
$output = preg_replace('/<!--[^\{\[\]*?[^b<!--\b]*?[^\b-->\b]*?-->/i', "", $output);
// We exclude HTML comments containing "{" and "["
// this way CSS definitions and AnyMedia stuff won't get striped
// last not least: strip any remaining multiple spaces between tags...
$output = preg_replace('/>[\s]+</', "> <" ,$output );
//$output=preg_replace('/<!--([^\r\n].+)?-->/', '', $output);
// ...and also strip the <nocompress> tags for keeping any XHTML compliance
$output = str_replace("<nocompress>" ,"" ,$output );
$output = str_replace("</nocompress>" ,"" ,$output );
Может бы это и не работает, тк я вырезал код из продукта hellcat realtime page compressor для vbulletin не полностью. На некоторых страничках этот код вообще может зациклиться насовсем и я это наблюдал. С другой стороны продукт используют многие и это не совсем уж на коленке сделано. Как видно из кода, глючащие порции нужно заключать в нестандартный тег <nocompress>.
Если кто-то видел обычную программу на С - я бы с удовольствием попытался бы сделать из нее расширение для php на благо опенсорца.
так таблиц или баз? все вышеприведенные рассуждения относятся к таблицам. если у вас в одной базе просто свалены таблицы с разным префиксами, то тут уже не так важно как хранить.
В общем случае кеш mysql лучше работает когда много маленьких баз, потому что достаточно обновить одну запись и из кеша вычищаются все запросы с данными из этой таблицы. Опять же параллизм выше даже если использовать myisam.
Другое дело что работать с кучей таблиц неудобно. Допустим вы захотите какую-нибудь глобальную статистику по всем сайтам рассчитать.
Можно поставить socks-прокси на компьютер и использовать обертку freecap для запуска некоторых программ. Остальные пойдут обычным путем.
Если прога постоянно работает с ограниченным числом хостов или сетей и остальные программы с ним не работают - можно прописать туда роутинг и будет выбираться нужный ip.
Какой вы все-таки упорный. Прошлый раз доказывали, что ваш мегаскрипт не имеет отношения к openx при очевидных родственных признаках ( /ru/forum/281653) , а теперь думаете, что вам поверят про два года безупречной работы ?
Кстати, какой скрипт зазендили на этот раз? Может, как обычно, исходный скрипт даже лучше и на него стоит обратить внимание ?
Ну если уж на то пошло, то и правило должно реально работать : то есть по команде iptables -nvL -t nat должно быть видно что пакеты идут и счетчики увеличиваются. А то ведь можно других правил намутить (что в принципе было бы так же интересно увидеть)
Andreyka, ну, Андрей, ну сколько можно? Платить деньги чтобы доказать себе, что вы выдумали очередную хабрадурь - на это никто не пойдет.
Это просто новое слово в netfilter, когда третий пакет с данными проходит через PREROUTING.
Пакет проходит там один раз и только первый. Дальше уже невозможно сменить адрес назначения DNAT или привязку на порт -j REDIRECT. Это противоречит всем концепциям работы netfilter.
Если вы знаете какой-то секрет, просто скажите. Делать тут ничего не надо - все люди подкованные и уж c iptables разберутся. Никакой коммерческой тайны тут и не видно.
Andreyka, эта строка не может работать ни при каких правилах. Если работает - настройте виртуальную машинку и выложите образ, а мы разберемся почему оно работает. Времени это займет немного.
Конечно понятно, что вы можете решить проблему по-другому, например правилами squid или nginx, но сам по себе факт публикации непроверенной информации огорчает. Да и весьма заманчиво было бы отбрасывать пакеты на уровне ядра.
противники могут писать что угодно, но людям это нужно. gzip это хорошо, но можно сделать еще лучше.
писать хорошие темплаты - не вариант. а уж сколько лишних комментариев обычно в этих темплатах.
dma84, нет, tidy слишком тормозит и не сжимает.
я бы тоже с удовольствием бы поимел расширение php на C в виде конечного автомата, но чтото не нашлось.
пока использую такое :
Может бы это и не работает, тк я вырезал код из продукта hellcat realtime page compressor для vbulletin не полностью. На некоторых страничках этот код вообще может зациклиться насовсем и я это наблюдал. С другой стороны продукт используют многие и это не совсем уж на коленке сделано. Как видно из кода, глючащие порции нужно заключать в нестандартный тег <nocompress>.
Если кто-то видел обычную программу на С - я бы с удовольствием попытался бы сделать из нее расширение для php на благо опенсорца.
так таблиц или баз? все вышеприведенные рассуждения относятся к таблицам. если у вас в одной базе просто свалены таблицы с разным префиксами, то тут уже не так важно как хранить.
В общем случае кеш mysql лучше работает когда много маленьких баз, потому что достаточно обновить одну запись и из кеша вычищаются все запросы с данными из этой таблицы. Опять же параллизм выше даже если использовать myisam.
Другое дело что работать с кучей таблиц неудобно. Допустим вы захотите какую-нибудь глобальную статистику по всем сайтам рассчитать.
Не много не понял, вы предлагаете проге ходить через что?
ну значит вам это и не грозит.
Можно поставить socks-прокси на компьютер и использовать обертку freecap для запуска некоторых программ. Остальные пойдут обычным путем.
Если прога постоянно работает с ограниченным числом хостов или сетей и остальные программы с ним не работают - можно прописать туда роутинг и будет выбираться нужный ip.
Какой вы все-таки упорный. Прошлый раз доказывали, что ваш мегаскрипт не имеет отношения к openx при очевидных родственных признаках ( /ru/forum/281653) , а теперь думаете, что вам поверят про два года безупречной работы ?
Кстати, какой скрипт зазендили на этот раз? Может, как обычно, исходный скрипт даже лучше и на него стоит обратить внимание ?
Ну если уж на то пошло, то и правило должно реально работать : то есть по команде iptables -nvL -t nat должно быть видно что пакеты идут и счетчики увеличиваются. А то ведь можно других правил намутить (что в принципе было бы так же интересно увидеть)
Andreyka, ну, Андрей, ну сколько можно? Платить деньги чтобы доказать себе, что вы выдумали очередную хабрадурь - на это никто не пойдет.
Это просто новое слово в netfilter, когда третий пакет с данными проходит через PREROUTING.
Пакет проходит там один раз и только первый. Дальше уже невозможно сменить адрес назначения DNAT или привязку на порт -j REDIRECT. Это противоречит всем концепциям работы netfilter.
Если вы знаете какой-то секрет, просто скажите. Делать тут ничего не надо - все люди подкованные и уж c iptables разберутся. Никакой коммерческой тайны тут и не видно.
Andreyka, эта строка не может работать ни при каких правилах. Если работает - настройте виртуальную машинку и выложите образ, а мы разберемся почему оно работает. Времени это займет немного.
Конечно понятно, что вы можете решить проблему по-другому, например правилами squid или nginx, но сам по себе факт публикации непроверенной информации огорчает. Да и весьма заманчиво было бы отбрасывать пакеты на уровне ядра.
первый пакет - с флагом syn, нет там данных
ok. ну тогда он использовал это в INPUT или FORWARD, где проходит каждый пакет.
В любом случае, раз ни при каких условиях последующие пакеты соединения не попадают в цепочку PREROUTING, это решение не может работать вообще никак.