На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ALXR
  
    > И вновь регулярные выражения
      есть сообщение
      <VovikDRG><nazarini> посидим на диване)))) :3:
      его я делю на кому и сообщения
      все делится смайлы выводятся но беда если отправляю вум челам нифига не работает почему отправляэт тока одному((( а нехорошо так
      ExpandedWrap disabled
        ereg("<([^>]+)",$mas[message],$matches); //Ищу <VovikDRG><nazarini>
        $mas[message]=ereg_replace("<(.*)>","",$mas[message]); //удаляю <VovikDRG><nazarini>
        $mas[message]=strtr($mas[message],$smile); //заменяю смайлы
        $for_name=" $matches[1]"; // формирую масив кому отослать

      Результат вот такой
      12:02:19 vovikdrg для VovikDRG: посидим на диване)))) user posted image
      M
      VovikDRG, соблюдайте элементарные правила приличия!
      Сообщение отредактировано: Mastilior -
          SiMM, Пасиб))))
            Вот на всякий случай готовый вариант:
            ExpandedWrap disabled
              <?
              $mas[message]="<VovikDRG><nazarini> посидим на диване)))) :3:";
               
              // {i}Забыл учесть то, что <...> появляется несколько раз.{/i}
              ereg("(<[^>]+>)+",$mas[message],$matches); //Ищу <VovikDRG><nazarini>
              $mas[message]=ereg_replace("<(.*)>","",$mas[message]); //удаляю <VovikDRG><nazarini>
              $mas[message]=strtr($mas[message],$smile); //заменяю смайлы
              $for_name=" $matches[0]"; // формирую масив кому отослать
              $mas[message]=$for_name.$mas[message];
              ?>
              ПОнял))) уже что и как тогда следующий вопрос без цыкла мона вывести $matches?
              Сообщение отредактировано: VovikDRG -
                Цитата VovikDRG @
                ПОнял))) уже что и как тогда следующий вопрос без цыкла мона вывести $matches?

                Какого цикла?
                  Mastilior, $for_name=" $matches[0]"; виводит только первый елемент((( а остальные нет
                    Цитата VovikDRG @
                    Mastilior, $for_name=" $matches[0]"; виводит только первый елемент((( а остальные нет

                    Цитата
                    http://pyramidin.narod.ru/php42/f/ereg.html

                    Если совпадения найдены для подстроки в скобках из pattern и функция вызывается с третьим аргументом regs, совпадения будут сохранены в элементах массива regs.
                    $regs[1] содержит подстроку, которая начинается с первой левой скобки; $regs[2] содержит подстроку, которая начинается со второй, и так далее. $regs[0] содержит полную копию совпавшей строки.
                      Mastilior, ко мне дошло но не работает(((

                      Добавлено
                      даю весь код а то я запутался уже (((
                      ExpandedWrap disabled
                        1      ereg("<([^>]+)",$mas[message],$matches);
                        2       $mas[message]=ereg_replace("<(.*)>","",$mas[message]);
                        3        $mas[message]=strtr($mas[message],$smile);
                        4        if(!isset($matches[0]))
                        5        $for_name='<b>всіх</b>';
                        6        else
                        7        $for_name=" $matches[1]";
                        8        if (strtolower($mas[name])==strtolower($login))
                        9        print "<font color=red>$time</font> <b>$mas[name]</b> для $for_name: $mas[message]<br>";
                        10        else
                        11        print "$time <b><a href=\"javascript:insertnik('$mas[name]')\">$mas[name]</a></b> для $for_name : $mas[message]<br>";

                      Если вывожу 0 елемент (7 строчка)тогда сообщения не выводится воообще невыводится(((

                      Добавлено
                      Выводится только час и логин
                        Что в $matches после выполнения первого регэкспа?
                        Я же предалгал в посте #4 изменить рег. выражение. (т. к. твой вариант не учитывал то, что в сообщении может быть несколько последовательно стоящих ников):
                        ExpandedWrap disabled
                          ereg("(<[^>]+>)+",$mas[message],$matches); //Ищу <VovikDRG><nazarini>
                        1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,0476 ]   [ 14 queries used ]   [ Generated: 18.05.24, 04:30 GMT ]