На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: ALXR
  
    > PHP + подсветка
      Доброе время суток.

      Проблема в следующем.
      Есть строка поиска "лось".
      В результате должна сформироваться страничка вида.

      Вы искали лось
      Найдено совпадений 2:
      1. Вам и не снилось
      2. Лось и мартышка

      Собсно, список есть. Но как заменить $r[1], которым и является строка все вхождения [лось] на
      %<font color=red>лось</font>?

      Подскажите откуда начать искать.
      LIKE в MySQL по запросу не делает различий между "Лось" и "лось". И выделять их надо соответственно.


      Заранее спасибо.
        Может тебе помогут регулярные выражения?

        Например так:

        ExpandedWrap disabled
           
            $search = "search";
            $replace = "<font color='red'>$search</font>";
            $str = "Here's the text with searching string. And it's the second searching string.";
           
            echo preg_replace("'".$search."'", $replace, $str);
          =(
          Я это уже сделал с помощью str_replace
          Но попробуй заменить строку
          $str = $str . "Lets Search This!"
          Search НЕ выделяет.
            Странно, у меня работает...

            ExpandedWrap disabled
               
                $search = "search";
                $replace = "<font color='red'>$search</font>";
               
                $str = "Here's the text with searching string. And it's the second searching string.<br>";
                $str = $str."Let's search this!";
               
                $str .= "And finally third line with the search!"; //имхо так удобнее, чем $str = $str. ...
               
                echo str_replace($search, $replace, $str);


            А какой у тебя ПХП? Помнится там в str_replace какя-то ошибка была...
              А так:
              ExpandedWrap disabled
                $search = "search";
                $replace = "<font color='red'>$search</font>";
                $str = "Here's the text with searching string. And it's the second searching string.<br> Searching complete";
                 
                echo preg_replace("/".$search."/i", $replace, $str);
                Ага, я понял - ты использовал str_replace вместо preg_replace, тогда к $search не нужно добавлять одинарные кавычки (которые являются границами регулярного выражения).
                  ExpandedWrap disabled
                     
                    $find = "search";
                    $str = "Here's the text with searching string. And it's the second searching string. Let's Search this!";
                    echo preg_replace("/(".$find.")/im","<font color=red>$1</font>",$str);


                  Во! Заработало. Я так понимаю, дело все в /i который игнорирует регистр.
                  Пасибо всем большое.
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0559 ]   [ 15 queries used ]   [ Generated: 27.04.24, 12:21 GMT ]