столкнулся вот с чем: имеем файл message.txt , в котором храним: Код (Text): [date]13.03.2010[/date] [author]shaman[/author] [text]текст текст текст[/text] так вот в скрипте нужно отфильтровать весь этот текст скажем заменив квадратные скобки на теговые, НО меняя не скобки на скобки а именно [date] на <date>, [/text] на </text> и т.д. а скрипт выглядит примерно так Код (Text): <? $message = get_file_contents("message.txt"); // а вот тут как я понял идут регулярки, но ничего не выходит. они начинают резать переменные. прошу помочь разобраться echo $message; ?>
PHP: <?php // $text = file_get_contents( .. ); if(substr_count($text, "[date]") === substr_count($text, "[/date]")) { $text = str_replace("[date]", "<date>", $text); $text = str_replace("[/date]", "</date>", $text); } else { // Тут регулярки } ?> Разбирайся =)
собсно бился с регулярками, и str_replace помогла как низя лучше, за наводку с проверкой тож спасибо я вот что думаю, назревает такой вопрос: с точки зрения оптимизации что лучше делать скажем для хранения сообщений юзеров? вариант 1 - один мессадж хранится в строке БД и при запросе выводится по айдишнику. но в случае огромного кол-ва сообщений выборка из базы занимает больше времени. вариант 2 - полная переписка двух юзеров хранится в подобном файле и фильтруеццо из этого файла в html скажем str_replace'ом при каждом обращении к переписке. что в этом случае все таки лучше нагружать? похапе или мускул?
насколько сильнонагруженной предполагается система? если там порядка миллиона посетителей в день, то тут никакой речи вообще не может идти об sql (хотя не думаю, что у тебя этот случай). если загрузка порядка 1000 в день, то конечно нужно в первую очередь из базы все соки выжимать. если грамотно натюнить объекты, индексы итп, можно неплохо разогнать двиг.
дело не в моем случае а в саморазвитии и все же при большей нагрузке такое хранение мессаджей в файлах будет целесообразней? или есть еще более удобные варианты? еще учитываем то что, нужно хранить переписку юзеров за все время их пребывания на сайте, в будущем база будет, ну не малая скажем так
для саморазвития можешь поразбиратся с базами данных типа key-value (ключ-значение). насчет удобнее не знаю, sql-прослойки там нет, но производительность они обеспечивают достойную за счет того, что основаны таки на файлах и еще некоторых аспектах своей структуры. такие проекты как вконтакте, facebook, twitter работают на такого типа базах
engager т.е. в сильно нагруженных системах совсем не используют mysq для хранения таких данных?жесть... а можно Redis ставить под виндой? и есть ли api на php 5.3 ?
не то что mysql, даже оракл отдыхает. недостаток таких бд - построение какой-либо более-менее сложной аналитики превращается в ад. да и ни к чему в таких проектах сложная аналитика. Для пхп мне известно апи под названием Rediska. на счет совместимости с 5.3 не знаю. Для винды есть сервер.
engager только сегодня слушал лекцию по поводу того что в крупных проектах используется оракл, видимо крупный и сильно нагруженный разные понятия все таки... у меня кеш файл создается для каждого пользователя... попробую в Redis сделать все это показ баннеров со статистикой хотел в mysql сделать )теперь наверное так буду делать)
Лол. Что характерно, если человек активно разглагольствует на тему "какое ПО лучше для хайлоада" вероятность того что он сам видел хайлоад стремится к нулю целых шишу десятых.
оракл хорош в ERP-системах, спору нет. но для построения социальной сети его использовать нецелесообразно. я работаю на предприятии, у которого филиалы в 14 крупных городах, стоит база оракл и ERP OracleApplications, который работает на sun-кластере под solaris'ом. спору нет, круто пашет. Другой пример, Mc'Donalds, у которого филиалы по всему миру, тоже управляет бизнесом с пом. OracleApplications Потенциал конечно огромный. Но построить то же самое на redis...
флоппик я не разглагольствую. человек спросил, какие еще могут быть варианты, я ему сказал. он о таком доселе не слыхивал, теперь знает. а дальше уж его дело. ничего не пропагандирую.
флоппик ну так никто не советует кто знает мы и обсуждаем) сказал бы свое веское слово хотя бы в одной теме про хай лоад
сутть дела как раз сотоит о том чтобы хранить мессаджы социалки. для всего остального в принципе мускула думаю хватит. вопрос такой: проблем с установкой редиски под виндой на денвер не будет?