Форум сетевых администраторов Страницы (2): [1] 2 »
Показаны 21 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- setlocale (http://netadmin.ws/forum/showthread.php?threadid=1564)


Помещено ExcErr 09-06-2002 в 10:24:

setlocale

Как вызвать субж, чтоб работал для всего скрипта?

На перловке с этим проблем нет, а вот на ПХП, ну как не крутил, не выходит глиняный цветок

ХЕЛП!!!!

__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg


Помещено devels 10-06-2002 в 16:15:

Наверное в начале прописать
setlocale (LC_ALL, 'ru_RU');
?????


Помещено ExcErr 10-06-2002 в 16:30:

devels
Ð_то ясный перец, но в том то и дело, что так и не пашет, по какой-то причине
Голову ломаю уже какие сутки

__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg


Помещено devels 10-06-2002 в 17:11:

Да вот тупо взял и скопировал из мануала

<?php
setlocale (LC_ALL, '');
echo strftime ("%A %e %B %Y", mktime (0, 0, 0, 12, 22, 1978));
?>
Выход : пятница Декабрь 1978

Только там приписочка -- если типа хотите чтобы брались настройки пользователя, не указывайте кодировки в переменных функции setlocale.
If locale is the empty string "", the locale names will be set from the values of environment variables with the same names as the above categories, or from "LANG".

Принудительно можно указывать
<?php
setlocale (LC_ALL, 'RU');
echo strftime ("%A %e %B %Y", mktime (0, 0, 0, 12, 22, 1978));
?>


Помещено ExcErr 10-06-2002 в 17:21:

devels
Хех, незнаю, но у меня почему-то не катит. По манам и делал эту фигню...
Мне просто поиск нужно сделать, но чтоб еще и кирилицу понимал... Так вот и маюсь

__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg


Помещено devels 10-06-2002 в 17:42:

Поиск в базе или поиск в файлах??
Тут может быть проблема с соответствием кодировок локали, webсервера и локали базы данных. Или вариант: кодировок локали, webсервера и локали файла/shell`а


Помещено ExcErr 10-06-2002 в 17:59:

да и так и так пытался..
мне бы eregi приучить к тому, чтоб он знал, что есть кирилическая буква маленькая, а есть и большая....

__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg


Помещено devels 10-06-2002 в 18:13:

PHP Manual:
eregi -- case insensitive regular expression match

Так используй ereg


Помещено ExcErr 10-06-2002 в 18:21:

devels
так ты сам написал и сам советуешь не то...
мне нужно чтоб не зависимо от регистра искало
к примеру
если при ereg я буду искать букву "А", то он будет искать только "А", а при eregi он ищет (в англ. тока раскладке) и "А" и "а".
Вот в чем фитча то.

__________________
Жизнь как минное поле, не знаешь где нарвешься...
http://www.danasoft.com/sig/ExcErr2.jpg


Помещено polo 10-06-2002 в 20:09:

сколько не пытался я использовать эту локаль блин, реально работает только у меня на машине, то ли имена этих локалей разные то ли не знаю...

__________________
Всегда есть решение.


Помещено [si] 10-06-2002 в 21:16:

setlocale это системная фича, есть системы на которых это не поддерживается, в принципе этот вопрос хостеру лучше задать, если есть shell можно по-пробовать это:

locale -a

Даст список доступных в системе локале, у меня например есть такие:
ru_RU
ru_RU.CP1251
ru_RU.KOI8R
ru_RU.cp1251
ru_RU.koi8r
ru_RU.utf8

причет CP1251я делал сам

подрбности

man locale
man localedef


Помещено polo 10-06-2002 в 21:31:

мне к примеру выдает
ru_RU
ru_RU.koi8r
ru_RU.utf8
russian
ru_UA
ru_UA.utf8
думаю russian & ru_RU под 1251.

__________________
Всегда есть решение.


Помещено [si] 11-06-2002 в 07:47:

Скорее это koi8


Помещено devels 11-06-2002 в 09:32:

quote:
да и так и так пытался..
мне бы eregi приучить к тому, чтоб он знал, что есть кирилическая буква маленькая, а есть и большая....

Может я что не понимаю, ты сам сказал что нужно отличие больших и малых, тогда ereg.

По поводу поиска в файлах

У меня в системе например такая вот ботва:

[.....................]$ locale -a|grep ru_
ru_RU
ru_RU.koi8r
ru_RU.utf8
ru_UA
ru_UA.utf8
[.....................]$ locale
LANG=ru_RU.KOI8-R
LC_CTYPE="ru_RU.KOI8-R"
LC_NUMERIC="ru_RU.KOI8-R"
LC_TIME="ru_RU.KOI8-R"
LC_COLLATE="ru_RU.KOI8-R"
LC_MONETARY="ru_RU.KOI8-R"
LC_MESSAGES="ru_RU.KOI8-R"
LC_PAPER="ru_RU.KOI8-R"
LC_NAME="ru_RU.KOI8-R"
LC_ADDRESS="ru_RU.KOI8-R"
LC_TELEPHONE="ru_RU.KOI8-R"
LC_MEASUREMENT="ru_RU.KOI8-R"
LC_IDENTIFICATION="ru_RU.KOI8-R"

Проверим все это методом научного тыка
Берем файл с заведомо koi8-r начинкой.
proba.php (взято из мануала)
<?
setlocale (LC_ALL, 'ru_RU.koi8-r');

$filename = "./proba.txt";
$fd = fopen ($filename, "r");
$string = fread ($fd, filesize ($filename));
fclose ($fd);

if (eregi("а", $string))
{ echo "'$string' contains a 'а' or 'А'!";
} else
{ echo "not contains;";
}
?>
Выводит все правильно!!!

А в файле с кодировкой win-1251 мы жестоко обломаемся :-(
russian и ru_RU не подходят
Как было видно, у меня нет ru_RU.cp1251, так что с этой кодировкой я не пробовал.

Вот такие пирожки с котятами.


Помещено polo 11-06-2002 в 13:04:

не понятно почему так происходит, 1251 на много популярнее теперь чем кой.

__________________
Всегда есть решение.


Формат времени GMT. Текущее время 21:39. Страницы (2): [1] 2 »
Показаны 21 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.