Comandante
Newbie
Сообщения: 5
Зарегистрирован: 1.3.2007
Пользователя нет на форуме
|
когда размещено 1.3.2007 в 15:41 |
|
|
Как такое может быть?
Есть простенький скриптик:
<?
$text="бла-бла текст бла-бла";
if (eregi("Текст","$text")) echo "не учитывает регистр";
else echo "Error! Учитывает регистр";
?>
На локале работает как и должен, в браузер пишет "не учитывает регистр". А вот на сервере получаю "Error! Учитывает регистр".
Причем попробовал на трех разных серверах - везде одно и то же.
eregi - совпадение с регулярным выражением без учёта регистра символов
Почему так происходит? Я чего-то не понимаю?
[Изменено 1.3.2007 от Comandante]
|
|
kpv
|
когда размещено 1.3.2007 в 16:32 |
|
|
если Вы сравниваете русский текст, может быть всё дело в
http://ru2.php.net/manual/en/function.setlocale.php
|
|
Comandante
Newbie
Сообщения: 5
Зарегистрирован: 1.3.2007
Пользователя нет на форуме
|
когда размещено 1.3.2007 в 17:51 |
|
|
Да, текст только на русском.
Первый раз сталкиваюсь с setlocale(). Подскажите, что нужно добавить в код, чтобы текст сравнивался корректно?
|
|
kpv
|
когда размещено 2.3.2007 в 12:59 |
|
|
каким образом сервер про кодировку узнает?
http://ru2.php.net/manual/en/function.strtolower.php
http://ru2.php.net/manual/en/function.strtoupper.php
локаль необходимо установить ту, которая стоит на сервере для того языка, с которым работаете.
например:
$ locale -a | grep "RU"
ru_RU.CP1251
ru_RU.CP866
ru_RU.ISO8859-5
ru_RU.KOI8-R
ru_RU.UTF-8
|
|
Comandante
Newbie
Сообщения: 5
Зарегистрирован: 1.3.2007
Пользователя нет на форуме
|
когда размещено 2.3.2007 в 13:17 |
|
|
Пробую вставлять перед eregi() строку:
setlocale (LC_ALL, 'ru_RU.CP1251');
- ничего не выходит, что не так?
PS. echo setlocale(LC_ALL, NULL) на сервере дает "C", на локале "Russian_Russia.1251"
[Изменено 2.3.2007 от Comandante]
|
|
kpv
|
когда размещено 2.3.2007 в 13:38 |
|
|
давайте начнём с первого пункта, тогда
http://forum.ruweb.net/viewthread.php?tid=1821
а также где Ваш скрипт лежит?
|
|
Comandante
Newbie
Сообщения: 5
Зарегистрирован: 1.3.2007
Пользователя нет на форуме
|
когда размещено 2.3.2007 в 14:17 |
|
|
Сорри, на этом хостинге это работает, а вот на другом этот же скрипт сравнивает текст с учетом регистра. Но это уже другой разговор, спасибо за
помощь!
|
|
Comandante
Newbie
Сообщения: 5
Зарегистрирован: 1.3.2007
Пользователя нет на форуме
|
когда размещено 2.3.2007 в 14:22 |
|
|
на другом хостинге решил проблему вставив
setlocale(LC_ALL, 'ru_RU.KOI8-R');
хотя echo setlocale(LC_ALL, NULL); и там, и тут выводило "C"
[Изменено 2.3.2007 от Comandante]
|
|