Во-первых цикл не нужен, достаточно модификатора /gs
Во-вторых, кто вам сказал что это именно preg_replace так портит данные? Напоминает обычное экранирование слешей в php.
Дело в том, что квоту на бд на шаред-хостинге сделать сложно - mysql будет ломать таблицы даже если удастся как-нибудь изобразить квоту на каталог. 50 мб для vds - мало.
Квота скорее всего чисто на словах там.
К этому делу нужна еще какая-то программа-сенсор.
Проще всего вывод netstat парсить и считать число соединений.
тоньше и оперативнее - читать access.log с анализом url или tcpdump.
nat000, не буду оригинален - это можно сделать с помощью программирования :)
в чем проблема написать GROUP BY (<жуткое_выражение_и_convert_tz) ?
Вас надо изолировать.
Впрочем, поиграйтесь с форматированием дат и приведением дебильных форматов к НОРМАЛЬНЫМ:
я предположил что даты хранятся в char, основная зона сервера +3:00, а в Омске сейчас +6:00
create table t (d char(20));insert into t values ('200910292340'),('200910292240');mysql> select str_to_date(d,'%Y%m%d%H%i') from t;+-----------------------------+| str_to_date(d,'%Y%m%d%H%i') |+-----------------------------+| 2009-10-29 23:40:00 || 2009-10-29 22:40:00 |+-----------------------------+mysql> select CONVERT_TZ(str_to_date(d,'%Y%m%d%H%i'),'+3:00','+6:00') from t;+---------------------------------------------------------+| CONVERT_TZ(str_to_date(d,'%Y%m%d%H%i'),'+3:00','+6:00') |+---------------------------------------------------------+| 2009-10-30 02:40:00 || 2009-10-30 01:40:00 |+---------------------------------------------------------+
здесь char вместо int, но, я думаю, вам не привыкать напрягаться вместо того чтобы сразу проектировать правильно.
nat000, так это вы ДУМАЕТЕ, что там хранится в виде строки или на самом деле в таблице в этом поле используется char ? я как то не верю. если на самом деле там datetime - то и нет никакой проблемы. при выборе дат МОЖНО ПОДУМАТЬ, что это обычная строка. по-моему старый mysql так форматировал datetime, что они были похожи на строку.
nat000, ну так конвертируйте данные каждого пользователя и храните все datetime. Нормально все будет и даже намного легче в последствии.
Ниче не понятно, но знаете ли вы,что зону можно менять для текущей сессии ? set time_zone='+3:00';
Знаете ли вы, что часто даты хранят в виде int и тогда арифметика группировки сводится к целочисленному делению ?
а они вам предлагали хотя бы на 100мбит перейти?
И дайте вы им денег. Еще.
Возиться за абонентскую плату по умирающему 10мбитному каналу с сервером - нерентабельно. Им проще сказать "ой, невозможно".
Да что там ее реверсить? обычные формочки и странички. За вечер слепил такое (и даже сложнее ) на perl lwp. Правда интерфейса мне достаточно пакетно-педального.
Кстати, xml-интерфейс требует от хостера его включения ? я не стал даже светиться перед хостером и спрашивать. На месте хостера я бы его выключал. А то умников всяких много за 20$ сделать "хостинг".