Проблема с функциями strtoupper strtolower

Ax

Новичок
Проблема с функциями strtoupper strtolower

Функции strtoupper, strtolower не возвращают нужного результата, т.е. вообще не чего не делают.
Перед функциями стоит строка
setlocale (LC_CTYPE, 'ru_RU.CP1251');
Как заставить их работать.

Параметры сервака Linux, Apache 2.2.0, php5.1.2, MySql 5.0.18
 

Кром

Новичок
>setlocale (LC_CTYPE, 'ru_RU.CP1251');

Еще не факт, что локаль устанавливается. Смотри возвращаемое значение.
Текст, который конвертируешь в какой кодировке? Не из базы ли случайно в utf8?
 

Ax

Новичок
PHP:
setlocale (LC_CTYPE, 'ru_RU.CP1251');
$poisk_biznes = 'слово';

$poisk_str1 = strtolower("$poisk_biznes");
$poisk_str2 = strtoupper("$poisk_biznes");
$poisk_str3 = ucfirst ("$poisk_str1");
$poisk_str4 = ucwords ("$poisk_str1");

echo "$poisk_str1<br />\n";
echo "$poisk_str2<br />\n";
echo "$poisk_str3<br />\n";
echo "$poisk_str4<br />\n";
 

baev

‹°°¬•
Команда форума
Параметры сервака Linux
— многозначительный «параметр»

Как заставить их работать.
0. Включить показ ошибок.
1. Удостовериться, что нужная локаль вообще установлена.
2. Удостовериться, что она вызывается именно так.
3. Удостовериться, что в Вашем конкретном случае у неё работает параметр LC_CTYPE.
 

Ax

Новичок
Данные с phpinfo
HTTP_ACCEPT_CHARSET iso-8859-5, utf-8;q=0.5, *;q=0.5
HTTP_ACCEPT_LANGUAGE en

А как добавить поддержку ru_RU.CP1251
 

baev

‹°°¬•
Команда форума
— это не то.

Я Вам пункты уже перечислил.
Вставьте в начало код:
PHP:
ini_set('display_errors',1);
error_reporting(E_ALL);
$loc=setlocale (LC_CTYPE, 'ru_RU.CP1251');

switch($loc){
  case false: echo "false<br />";
  break;
  default: echo $loc."<br />";
  break;
}
и покажите, что он выведет.

-~{}~ 04.08.06 14:56:

как добавить поддержку ru_RU.CP1251
Во-первых, она по-другому может называться.
Во-вторых, это — забота хостера.
(В-третьих, когда мне неудачный хостер попался, я в Яндексе за пять минут нашёл инструкцию на русском и переслал хостеру.)
 
Сверху