strtolower не пашет!

seva2

Партнер PHPClub.ru
strtolower не пашет!

PHP:
setlocale(LC_ALL, 'ru_RU.CP1251'); 
echo strtolower('СПСР');
$per='СПСР';
if(eregi('спср', 'мой СПСР'))
{
echo 'asdfasdf';
}
Ни первое ни второе не работает, почаму?
 

Coffin

Новичок
У меня все пашет :)
Вообщем у меня на 1 хостинге тоже ни strtolower ни strtoupper не пахал... хз почему
 

seva2

Партнер PHPClub.ru
Вот хочется выяснить почему))) По молодости юзал strtolower)
 

dron4ik

Новичок
мне вот что помогло, к сожалению не знаю чей из местных копирайт:

PHP:
// Setting up system locale
$locales   = array("ru_RU.CP1251", "ru_RU.cp1251", "ru_RU", "RU");
$localeSet = false;
foreach ($locales as $localeName) {
    if ((bool)$localeSet === false) {
        // setting up locase
        setlocale(LC_ALL, $localeName);
    }
    // check locale
    if ((bool)$localeSet === false && strtolower("qwertyёЁАБГДЯQWERTYZ") == "qwertyёёабгдяqwertyz") {
        // locale setup correctly
        $localeSet = true;
    }
}
if ((bool)$localeSet !== true) {
    // exiting now
    echo "Can't set up server locale to cp1251 character set at ".__FILE__." on ".__LINE__;
    exit();
}
достаточно универсальная.

+ на хостинге необходим верный encoding, спроси у хостера (или сам посмотри в phpinfo(), что стоит)
 
Сверху