На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ALXR
  
    > PHP: регулярные выражения.
      Приведите плз. пример регулярного выражения, которое бы находило в строке строку вида [num] , где num - любое одно-двузначное число, и заменяло бы его на текст с этим числом внутри !? желательно через функцию preg_replace() ?
        Все спасибо, не надо... нашел способ:
        ExpandedWrap disabled
          <br>$message = preg_replace("/\[(\d{1,2})\]/",'<IMG src=smiles/\\1.gif border=0>',$message);<br>
          Снова я, со своими регулярными выражениями... ;)
          На этот раз, я почти день просидел над своей проблемой, но все равно ничего не вышло. :( Проблема в следующем:
          мне требуется, чтобы функция preg_replace() искала в тексте, отрывок текста заключенный в псевдотеги [CODES] [/CODES] и то, что нашлось отдавать на обработку функции code() например. Находить, он находит, а вот функция грит, что ей ничего не передается... в результате мне возвращается найденный текст...
          Код, который делает обработку текста:
          ExpandedWrap disabled
            <br>$page_body = preg_replace("'\[code[^>]*?\].*?\[/code\]'si",code('\\0'),$page_body);<br>

          В чем может быть ошибка ???
            (.*?)
              Цитата vot, 12.10.03, 13:56:54
              (.*?)

              если я так понял... пробовал, все равно не получается! :(
                ExpandedWrap disabled
                  $str='s s s';<br>echo preg_replace('/(.)/e',"ord('\\1').','",$str);
                  а какой толк та мне от подобных примеров ???
                    а такой, что попробуй заключить найденное внутри тэгов в круглые скобки,
                    и передавать в функцию \\1
                      Цитата wertyman, 12.10.03, 16:30:36
                      а какой толк та мне от подобных примеров ???
                      Зависит от тебя.:)

                      Вот ещё один бесполезный пример:
                      ExpandedWrap disabled
                        <br>function cde($a)<br>{<br>      return strToLower($a);<br>}<br><br>$str='[cde]ABRA[/cde]';<br>echo preg_replace('/\[cde[^\]]*?\](.*?)\[\/cde\]/eis',"cde('\\1')",$str);[/cde]<br>


                      А теперь сравни оба.

                      Может пригодится:

                      • http://www.php.net
                      • http://www.hotelshop.ru/download


                      С регулярными выражениями проще работать на Perl.
                      Сообщение отредактировано: Tishaishii -
                        Усе. терь работает...  ;D все дело было, в том, что я не ставил модификатор "e" для выполнения функции... Спасибо за примеры...
                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,0486 ]   [ 16 queries used ]   [ Generated: 24.04.24, 14:08 GMT ]