За последние 24 часа нас посетили 16489 программистов и 1677 роботов. Сейчас ищут 913 программистов ...

Подсветка текста

Тема в разделе "Регулярные выражения", создана пользователем Rulya, 14 сен 2009.

  1. Rulya

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

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    Всем доброго времени суток!
    возникла следующая простенькая задача подсветить определенное слово в тексте
    сейчас делаю так:
    PHP:
    1.  
    2. $cvalue="<font color=red>".$value."</font>";
    3.     $value="".$value."";
    4.     $text=str_ireplace($value, $cvalue, $text);
    5.  
    работать то работает, но $value приходит из $_POST[] отображается в том регистре, в котором было отправлено, а необходимо отобразить его в том, в котором оно хранится в базе.
    в регулярках полный ноль, потому и прошу помощи
     
  2. Щербаков Олег

    Щербаков Олег Активный пользователь

    С нами с:
    30 ноя 2008
    Сообщения:
    19
    Симпатии:
    0
    $value="/".$value."/i"; если не ошибаюсь
     
  3. Frozen

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

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    перечитал раз 7, но так и не понял в чем собсна проблема? Бери его из базы и отображай
     
  4. Rulya

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

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    Не оно :(

    Проблемма в том что $value приходит из формы поиска, но придти оно может в виде "СлОвО" а в БД оно записано как "слово" вот и вывести надо "бла бла бла <font color=red>слово</font> бла бла бла", а не "бла бла бла <font color=red>СлОвО</font> бла бла бла"
     
  5. dots_rei

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

    С нами с:
    7 авг 2009
    Сообщения:
    193
    Симпатии:
    0
    strtolower($value) - перевод строки в нижний регистр
     
  6. Rulya

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

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    Да перевести то можно, вопрос в другом, подсветить слово и вывести его именно в том регистре, в котором оно записано в базе, а не в том в котором оно пришло из формы поиска
     
  7. Razys

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

    С нами с:
    14 сен 2009
    Сообщения:
    6
    Симпатии:
    0
    чес слово запутался совсем. расскажи полностью что ты хочеш. или выдай более обширный код. а то чет твой код не могу слепить с твоим вопросом
     
  8. Rulya

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

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    Хочу я следующее, пользователь вбивает в форме поиска "СлОвО"($value) не важно в каком регистре, из базы выбираются все записи, содержащие "слово", тоже не важно в каком регистре, теперь при выводе, надо подсветить все найденные "слова"
    но в том регистре, в котором они находятся в базе
     
  9. Razys

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

    С нами с:
    14 сен 2009
    Сообщения:
    6
    Симпатии:
    0
    береш слово с формы и записи с базы, поднимая и то и другое в верхний регистр, ищеш нужные слова, а выводиш в том виде в котором они записаны в базе.
     
  10. Rulya

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

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    Так вопрос в этом и состоит, как подсветить нужное, не изменяя исходного регистра
     
  11. Rulya

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

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    как имея на входе "СлОвО" сделать замену текста из базы на "бла бла бла <font color=red>слово</font> бла бла бла"?
     
  12. Rulya

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

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    Нашел в просторах интернета
    нужно мне было вот это
    PHP:
    1.  
    2. $text=preg_replace('#' . $value . '#i', '<font color=red>$0</font>', $text);
    3.  
     
  13. Rulya

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

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    стрянно, на локалке работает, в реале нет :(
     
  14. Frozen

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

    С нами с:
    20 окт 2008
    Сообщения:
    540
    Симпатии:
    0
    Адрес:
    Москва
    ну значит не слово из базы, а текст из базы, и приходит слово которое надо подсветить в этом тексте?
     
  15. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    ini_set('display_errors', 'on');
    error_reporting(E_ALL);

    и смотреть ошибки.
    Если их нет - курить саму регулярку.
     
  16. Rulya

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

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    нету ошибок
     
  17. nimistar

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

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    PHP:
    1. $text=preg_replace('/' . $value . '/iU', '<font color=red>\\0</font>', $text);
    ???
     
  18. Rulya

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

    С нами с:
    22 июл 2008
    Сообщения:
    34
    Симпатии:
    0
    это та регулярка, которую я выискал на просторах тырнета, и которая вроде бы выполняет мою задачу, но как то криво