За последние 24 часа нас посетил 63131 программист и 1740 роботов. Сейчас ищут 902 программиста ...

strtolower НЕ работает на сервере, но работает на локалке

Тема в разделе "PHP для новичков", создана пользователем xes, 4 апр 2011.

  1. xes

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

    С нами с:
    13 мар 2011
    Сообщения:
    11
    Симпатии:
    0
    Прикрутил поск который ищет количество включений одной подстроки в другой.
    При этом и в первой и во второй все буквы перевожу в нижний регистр.
    Например идет поиск по городу.
    Надо найти грод Абакан, если ввести "аб" в поиск на локалке то все работает правельно и выводятсья объекты где в имени города встречаються "аб" без учета регистра.
    На серваке не работает ищит с учетом регистра надо вводить "Аб" чтобы нашел все.
    Почему так?

    Вот так сравниваю:
    $search - искомая фраза
    $val["gorod"].$val["name"] - искать в строке
    strtolower - все символы в нижний регистр

    Код (Text):
    1. if ((substr_count(strtolower($val["gorod"].$val["name"]), strtolower($search))>0
    У меня тока одна мысль что на серваке эта функция не работает, но почемуто не выдаеться ошибка, мол неизвестный идентификатор.
     
  2. Апельсин

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

    С нами с:
    20 мар 2010
    Сообщения:
    3.645
    Симпатии:
    2
    попробуй mb_strtolower($str, 'UTF-8');
    если не - можно продолжать мозговой штурм.
     
  3. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Вот и ссылочка, чтоб лучше понимал ))


    http://php.su/functions/?cat=mbstring


    если не хочешь менять свою функцию на mb функцию

    мне помоглало выставление локали в начале скрипта


    Код (Text):
    1. setlocale(LC_ALL, 'ru_RU.CP1251', 'rus_RUS.CP1251', 'Russian_Russia.1251');
     
  4. xes

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

    С нами с:
    13 мар 2011
    Сообщения:
    11
    Симпатии:
    0
    СПС mb_ помагло