За последние 24 часа нас посетили 24516 программистов и 1726 роботов. Сейчас ищет 1921 программист ...

Вырезать все, кроме...

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

  1. Deniska_56

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

    С нами с:
    14 фев 2012
    Сообщения:
    13
    Симпатии:
    0
    Всем привет !
    Написал вот такое выражение
    Код (Text):
    1. $keyword=preg_replace("/^[^a-zA-Zа-яА-Я0-9]*$/u", "", $keyword);
    Эту переменную я принимаю из строки поиска от пользователя. Хочу вырезать все что не принадлежит указанному диапазону, но что то не работает. Кодировка utf-8 везде, модификатор тоже указал вроде... Что я написал не так ?
     
  2. kmichael

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

    С нами с:
    20 сен 2011
    Сообщения:
    19
    Симпатии:
    0
    Адрес:
    Новосибирск
    попробуй так,
    $keyword=preg_replace("/[^a-zA-Zа-яА-Я0-9]/", "", $keyword);
     
  3. Deniska_56

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

    С нами с:
    14 фев 2012
    Сообщения:
    13
    Симпатии:
    0
    Вот так вроде заработало, только модификатор /u оставил, но...
    Я отправляю переменную из формы в которой должно в будущем остаться введенное пользователем значение (value, сначало пустое а потом остается то что ввел пользователь):
    Код (Text):
    1. <input type=\"text\" name=\"keyword\" size=\"30\" maxlength=\"20\" value=\"$keyword\">
    потом форматирую её:
    Код (Text):
    1. $keyword=preg_replace("/[^a-zA-Zа-яА-Я0-9]/u", "", $keyword);
    потом по ней ищу (mysql):
    Код (Text):
    1. SELECT *  FROM table WHERE city like '%$keyword%' ORDER BY date desc;
    поиск корректно ищет фразы типа "сло%во" находит "слово", но вот в инпуте потом остается значение "сло%во", чет я запутался, почему в инпут не попадает "слово" уже отформатированное мной...
     
  4. kmichael

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

    С нами с:
    20 сен 2011
    Сообщения:
    19
    Симпатии:
    0
    Адрес:
    Новосибирск
    сначала модифицируй:
    Код (Text):
    1.  
    2. $keyword=preg_replace("/[^a-zA-Zа-яА-Я0-9]/", "", $keyword);
    затем подставляй в input:
    Код (Text):
    1.  
    2. <input type=\"text\" name=\"keyword\" size=\"30\" maxlength=\"20\" value=\"$keyword\">
     
  5. Deniska_56

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

    С нами с:
    14 фев 2012
    Сообщения:
    13
    Симпатии:
    0
    Спасибо большое ) Осмыслил, переписал, заработало )))