За последние 24 часа нас посетили 55440 программистов и 1795 роботов. Сейчас ищут 792 программиста ...

регулярки или как?

Тема в разделе "PHP для новичков", создана пользователем Шаман, 1 мар 2010.

  1. Шаман

    Шаман Активный пользователь

    С нами с:
    13 июн 2009
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    СПб
    столкнулся вот с чем:
    имеем файл message.txt , в котором храним:
    Код (Text):
    1. [date]13.03.2010[/date]
    2. [author]shaman[/author]
    3. [text]текст текст текст[/text]
    так вот в скрипте нужно отфильтровать весь этот текст скажем заменив квадратные скобки на теговые, НО меняя не скобки на скобки а именно [date] на <date>, [/text] на </text> и т.д.
    а скрипт выглядит примерно так
    Код (Text):
    1. <?
    2. $message = get_file_contents("message.txt");
    3. // а вот тут как я понял идут регулярки, но ничего не выходит. они начинают резать переменные. прошу помочь разобраться
    4. echo $message;
    5. ?>
     
  2. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    PHP:
    1. <?php
    2.  
    3. // $text = file_get_contents( .. );
    4.  
    5. if(substr_count($text, "[date]") === substr_count($text, "[/date]")) {
    6.     $text = str_replace("[date]", "<date>", $text);
    7.     $text = str_replace("[/date]", "</date>", $text);
    8. } else {
    9.     // Тут регулярки
    10. }
    11.  
    12. ?>
    Разбирайся =)
     
  3. Шаман

    Шаман Активный пользователь

    С нами с:
    13 июн 2009
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    СПб
    собсно бился с регулярками, и str_replace помогла как низя лучше, за наводку с проверкой тож спасибо

    я вот что думаю, назревает такой вопрос:
    с точки зрения оптимизации что лучше делать скажем для хранения сообщений юзеров?
    вариант 1 - один мессадж хранится в строке БД и при запросе выводится по айдишнику. но в случае огромного кол-ва сообщений выборка из базы занимает больше времени.
    вариант 2 - полная переписка двух юзеров хранится в подобном файле и фильтруеццо из этого файла в html скажем str_replace'ом при каждом обращении к переписке.
    что в этом случае все таки лучше нагружать? похапе или мускул?
     
  4. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    насколько сильнонагруженной предполагается система? если там порядка миллиона посетителей в день, то тут никакой речи вообще не может идти об sql (хотя не думаю, что у тебя этот случай).
    если загрузка порядка 1000 в день, то конечно нужно в первую очередь из базы все соки выжимать. если грамотно натюнить объекты, индексы итп, можно неплохо разогнать двиг.
     
  5. Шаман

    Шаман Активный пользователь

    С нами с:
    13 июн 2009
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    СПб
    дело не в моем случае а в саморазвитии :D
    и все же при большей нагрузке такое хранение мессаджей в файлах будет целесообразней? или есть еще более удобные варианты? еще учитываем то что, нужно хранить переписку юзеров за все время их пребывания на сайте, в будущем база будет, ну не малая скажем так
     
  6. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    для саморазвития можешь поразбиратся с базами данных типа key-value (ключ-значение). насчет удобнее не знаю, sql-прослойки там нет, но производительность они обеспечивают достойную за счет того, что основаны таки на файлах и еще некоторых аспектах своей структуры. такие проекты как вконтакте, facebook, twitter работают на такого типа базах
     
  7. Шаман

    Шаман Активный пользователь

    С нами с:
    13 июн 2009
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    СПб
    благодарю за пищу для ума, сразу наткнулся на Redis, буду грызть гранит.
     
  8. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    вово, редис - гуд продукт))
     
  9. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    engager
    т.е. в сильно нагруженных системах совсем не используют mysq для хранения таких данных?жесть...
    а можно Redis ставить под виндой? и есть ли api на php 5.3 ?
     
  10. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    не то что mysql, даже оракл отдыхает. недостаток таких бд - построение какой-либо более-менее сложной аналитики превращается в ад. да и ни к чему в таких проектах сложная аналитика.
    Для пхп мне известно апи под названием Rediska. на счет совместимости с 5.3 не знаю. Для винды есть сервер.
     
  11. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    engager
    только сегодня слушал лекцию по поводу того что в крупных проектах используется оракл, видимо крупный и сильно нагруженный разные понятия все таки...
    у меня кеш файл создается для каждого пользователя... попробую в Redis сделать все это
    показ баннеров со статистикой хотел в mysql сделать )теперь наверное так буду делать)
     
  12. Лол. Что характерно, если человек активно разглагольствует на тему "какое ПО лучше для хайлоада" вероятность того что он сам видел хайлоад стремится к нулю целых шишу десятых.
     
  13. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    оракл хорош в ERP-системах, спору нет. но для построения социальной сети его использовать нецелесообразно.
    я работаю на предприятии, у которого филиалы в 14 крупных городах, стоит база оракл и ERP OracleApplications, который работает на sun-кластере под solaris'ом. спору нет, круто пашет.
    Другой пример, Mc'Donalds, у которого филиалы по всему миру, тоже управляет бизнесом с пом. OracleApplications
    Потенциал конечно огромный. Но построить то же самое на redis...
     
  14. engager

    engager Активный пользователь

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    флоппик
    я не разглагольствую. человек спросил, какие еще могут быть варианты, я ему сказал. он о таком доселе не слыхивал, теперь знает. а дальше уж его дело.
    ничего не пропагандирую.
     
  15. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    флоппик
    ну так никто не советует кто знает мы и обсуждаем)
    сказал бы свое веское слово хотя бы в одной теме про хай лоад
     
  16. Шаман

    Шаман Активный пользователь

    С нами с:
    13 июн 2009
    Сообщения:
    67
    Симпатии:
    0
    Адрес:
    СПб
    сутть дела как раз сотоит о том чтобы хранить мессаджы социалки. для всего остального в принципе мускула думаю хватит. вопрос такой: проблем с установкой редиски под виндой на денвер не будет?