RuWeb.net - хостинг и регистрация доменных имен
ГЛАВНАЯ ХОСТИНГ ДОМЕНЫ VDS СЕРВЕР ИНФОРМАЦИЯ КЛИЕНТЫ ПРАВИЛА ОПЛАТА ЗАКАЗ ФОРУМ
go to bottom

Версия для печати | Подписаться | Добавить в избранное   Создать новую тему Опрос: Ответ на сообщение
Автор: Тема: Как такое может быть?
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
Super Administrator
*********




Сообщения: 2141
Зарегистрирован: 24.9.2004
Пользователя нет на форуме

[*] когда размещено 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
Super Administrator
*********




Сообщения: 2141
Зарегистрирован: 24.9.2004
Пользователя нет на форуме

[*] когда размещено 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
Super Administrator
*********




Сообщения: 2141
Зарегистрирован: 24.9.2004
Пользователя нет на форуме

[*] когда размещено 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]
Просмотреть Профиль Пользователя Просмотреть все сообщения этого пользователя Отправить пользователю личное сообщение
Создать новую тему Опрос: Ответ на сообщение

Powered by XMB
Разработано Группа XMB © 2001-2008
[запросов: 21] [PHP: 74.6% - SQL: 25.4%]
go to top
Центр поддержки (круглосуточно)
https://ruweb.net/support/
Москва(499) 502-44-31
Санкт-Петербург(812) 336-42-55
Нижний Новгород(831) 411-12-44
Екатеринбург(343) 204-71-16
© 2002-2013 ЗАО "РУВЕБ"

Дизайн - CredoDesign
Rambler\'s Top100 Рейтинг@Mail.ru
RuWeb.net - Хостинг веб-сайтов (первый месяц - бесплатно). Регистрация доменов.