За последние 24 часа нас посетил 17871 программист и 1612 роботов. Сейчас ищут 1337 программистов ...

3 Вопроса.

Тема в разделе "PHP для новичков", создана пользователем NITRO, 18 фев 2009.

  1. NITRO

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

    С нами с:
    6 фев 2007
    Сообщения:
    11
    Симпатии:
    0
    if(preg_match("/^[а-яА-Я]{1,50}$/",$this->zvanie) and preg_match("/^[а-яА-Яa-zA-Z]{1,30}$/",$this->otdel))
    {
    тра-ля-ля
    }


    Короче в конечном итоге когда вводим текст условие не выполняется, с английским вариантом все окей, но нужен русский.
    Мож кто знает как?

    Второе, если мы используем проверку переменной через preg_match есть ли резон использовать функцию htmlentities() ?

    И собственно третий когда я переменную прогоняю через htmlentities() мне ее надо использовать, но блин если текст вводится на русском, то выходит абра-кадабра, я уже пытался и кодировки прописывать в параметрах, не помогло. Как сделать, чтобы не было абра-кадабры?
     
  2. Ti

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

    С нами с:
    3 июл 2006
    Сообщения:
    2.378
    Симпатии:
    1
    Адрес:
    d1.ru, Екатеринбург
    NITRO, Ваша проблема в кодировках
    Используйте везде UTF-8.

    С кодировкой UTF-8 нужно добавить модификатор u
    PHP:
    1. <?
    2. if (preg_match("/^[а-яА-Я]{1,50}$/u", 'Звание') and preg_match("/^[а-яА-Яa-zA-Z]{1,30}$/u", 'Отдел')) {
    3.     echo 'valid';
    4. }
    5. else {
    6.     echo 'fail';
    7. }
    2. нет резона