Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Работа функнции strcasecmp() при сравнении русских букв.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Не работает :(
master_alf
Отправлено: 09 Августа, 2011 - 13:18:38
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




Приветствую.
Собственно такая проблема.
Фукция strcasecmp(), как заявлено, сравнивает строки без учета регистра. С русскими буквами работает хитро, необходимо поставить правильную локаль.

В моем случае сделано вот так:
PHP:
скопировать код в буфер обмена
  1. setlocale(LC_ALL, "ru_RU.utf8");
  2. $qwe = "Раз";
  3. $asd = "раз";
  4. echo strcasecmp($qwe, $asd);

Результат сравнения строк: -1. т.е. они не равны.
Вывод

В какую сторону копать - ума не приложу. Подскажите, пожалуйста, что сделать, что бы функция верно обрабатывала русские строки?
 
 Top
SAD
Отправлено: 09 Августа, 2011 - 13:31:33
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




вы неправильно локаль русскую устанавливаете, пошерстите по инету, там найдете
 
 Top
morosit
Отправлено: 09 Августа, 2011 - 13:35:14
Post Id



Посетитель


Покинул форум
Сообщений всего: 307
Дата рег-ции: Июль 2010  
Откуда: Казахстан


Помог: 4 раз(а)




а у меня без setlocale 0 выводит, т.е. строки равны
 
 Top
SAD
Отправлено: 09 Августа, 2011 - 13:41:02
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




ну у вас видимо русская локаль стоит по умолчанию
 
 Top
master_alf
Отправлено: 09 Августа, 2011 - 13:55:58
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2011  


Помог: 0 раз(а)




SAD пишет:
вы неправильно локаль русскую устанавливаете, пошерстите по инету, там найдете

А что значит "не правильно устанавливаю локаль"?
Была бы ошибка в параметрах - PHP бы ругался.
Я сделал так, как указано на php.net. С помощью
посмотрел список локалей:
C POSIX en_US.utf8 ru_RU.utf8
И выбрал ту, что подходит мне: ru_RU.utf8.
Что из этого не верно?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Хранение данных, их вывод и обработка »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB