админско-РНРшный вопрос про локаль

Arina_Kulikova

Что нужно чтобы заработала функция locale в PHP с русским
алфавитом(windows1251).
Насколько я понял нужна поддержка cp1251 для php-скриптов вэб-сервера.
Для этого нужно сделать доступным файл LC_CTYPE в соотвествующей папке в
chroot окружении веб-сервера.
Взять его можно отсюда:
/usr/share/locale/bg_BG.CP1251/
и скопировать сюда:
/var/www/usr/share/locale/ru_RU.CP1251/
Ну и в скрипте не забыть локаль установить.
<?php
if(setlocale (LC_ALL, 'ru_RU'{
echo "Ustanov";
}else{ echo "ne ustanovila";
}
#Печатает Ustanov
echo "<br>";
$str="Андрей";
$str = strtoupper($str);
echo "<br>";
echo $str;
#Печатает Андрей
?>
Нифига с русскими буковками функция не работает.
Что не так?
ОС: FreeBSD

otets-mihail

а может лучше кодировку в выдаваемом html прописать?

artimon

попробуй setlocale (LC_ALL, 'ru_RU.CP1251')

Arina_Kulikova

И так тоже не получается.
Ниже приведенный скрипт показывает настройки locale, ставил разные локали на
выходе видел одно и тоже.
Наводит на мысли, что хрен что выставляется.
<?php
setlocale(LC_ALL, "ru_RU.CP1251");
$locale_info = localeconv;
echo "<PRE>\n";
echo "------------------------------------------------\n";
echo " Nastroiki locale : \n";
echo "------------------------------------------------\n\n";
echo "int_curr_symbol: {$locale_info["int_curr_symbol"]}\n";
echo "currency_symbol: {$locale_info["currency_symbol"]}\n";
echo "mon_decimal_point: {$locale_info["mon_decimal_point"]}\n";
echo "mon_thousands_sep: {$locale_info["mon_thousands_sep"]}\n";
echo "positive_sign: {$locale_info["positive_sign"]}\n";
echo "negative_sign: {$locale_info["negative_sign"]}\n";
echo "int_frac_digits: {$locale_info["int_frac_digits"]}\n";
echo "frac_digits: {$locale_info["frac_digits"]}\n";
echo "p_cs_precedes: {$locale_info["p_cs_precedes"]}\n";
echo "p_sep_by_space: {$locale_info["p_sep_by_space"]}\n";
echo "n_cs_precedes: {$locale_info["n_cs_precedes"]}\n";
echo "n_sep_by_space: {$locale_info["n_sep_by_space"]}\n";
echo "p_sign_posn: {$locale_info["p_sign_posn"]}\n";
echo "n_sign_posn: {$locale_info["n_sign_posn"]}\n";
echo "</PRE>\n";
?>
На выходе получаю
------------------------------------------------
Nastroiki locale :
------------------------------------------------
int_curr_symbol:
currency_symbol:
mon_decimal_point:
mon_thousands_sep:
positive_sign:
negative_sign:
int_frac_digits: 127
frac_digits: 127
p_cs_precedes: 127
p_sep_by_space: 127
n_cs_precedes: 127
n_sep_by_space: 127
p_sign_posn: 127
n_sign_posn: 127

Arina_Kulikova

не вариант для моей задачи

Andr163

у меня такая хрень работает

setlocale (LC_CTYPE,"ru_RU.CP1251", "rus_RUS.1251","ru_RU.KOI8-R");

Arina_Kulikova

не помогло...

bansek

ты попробуй побраузится по тому месту, где фря хранит локали
сдери оттуда называние в точности такое, как нужно
мне в свое время помогло

Arina_Kulikova

я ошибся, у меня OPENBSD, а не фря
например на линухе все пашет, а в опен"е нет

skvoria

Интересно, сильно ли я ошибусь, если скажу, что OpenBSD не имеет локали как таковой?

Arina_Kulikova

и чеж делать?

skvoria

Ээээ... Перейти на NetBSD?

Marinavo_0507

юзать винду, как все
Оставить комментарий
Имя или ник:
Комментарий: