За последние 24 часа нас посетили 16817 программистов и 1646 роботов. Сейчас ищут 883 программиста ...

ereg_replace без учета регистра

Тема в разделе "Прочие вопросы по PHP", создана пользователем rustoke, 18 окт 2014.

  1. rustoke

    rustoke Новичок

    С нами с:
    20 сен 2014
    Сообщения:
    145
    Симпатии:
    0
    Есть код, при добавлении ()i не работает "без учет регистра", подскажите где ошибка
    Код (Text):
    1.  
    2. ereg_replace("(".$_GET['poisk']."*)i", "<a style='font-weight: bold; text-decoration: underline; color: red;'>\\0</a>", $p_msg);
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.250
    Адрес:
    там-сям
    [offtopic]функции ereg* считаются устаревшими и в новых версиях исчезнут из php. пользуйся preg*[/offtopic]

    eregi_replace — case insensitive replace

    а вообще ошибка с регистром как правило говорит о локали. если локаль нерусская, то русские буквы не могут корректно приводиться к другому регистру и в поиске соответственно не узнаются.
    http://php.net/manual/ru/function.setlocale
     
  3. rustoke

    rustoke Новичок

    С нами с:
    20 сен 2014
    Сообщения:
    145
    Симпатии:
    0
    Все равно не работает, искомый текст выделает в красный если пишу "продать", а если пишу "ПрОдАть", то вообще не работает выделение
    Код (Text):
    1.  
    2. setlocale(LC_ALL, 'ru_RU.CP1251', 'rus_RUS.CP1251', 'Russian_Russia.1251');
    3. eregi_replace("(".$_GET['poisk'].")si", "<a style='font-weight: bold; text-decoration: underline; color: red;'>".$_GET['poisk']."</a>", $p_msg);  
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    регулярка-то компилируется? мне кажется разделителей нет. что пишет еррор-лог?
     
  5. rognorog

    rognorog Новичок

    С нами с:
    7 июл 2014
    Сообщения:
    330
    Симпатии:
    0
    Может потому, что рашин буквы?)
    Юзни u модификатор, а может еще и quotemeta =))
    Ну конечно рекомендуется использовать как сказали выше preg_*.