Модераторы: Aliance, skyboy, MoLeX, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> strtolower русский текст 
:(
    Опции темы
bizmik
Дата 4.12.2007, 04:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 4.12.2007

Репутация: нет
Всего: нет



Цитата(mistero @ 23.7.2007,  19:19)
Здравствуйте.
Применяю функцию strtolower(), но на кириллицу не влияет.
Что делать?

разбирался с setlocale и нифига не работало. Потом плюнул и за 2 минуты написал простую функцию 
Код

function lower($ch)
{
    $arr = array(
     'A' => 'а',
     'Б' => 'б',
     'В' => 'в',
     'Г' => 'г',
     'Д' => 'д',
     'Е' => 'е',
     'Ё' => 'е',
     'Ж' => 'ж',
     'З' => 'з',
     'И' => 'и',
     'К' => 'к',
     'Л' => 'л',
     'М' => 'м',
     'Н' => 'н',
     'О' => 'о',
     'П' => 'п',
     'Р' => 'р',
     'С' => 'с',
     'Т' => 'т',
     'У' => 'у',
     'Ф' => 'ф',
     'Х' => 'х',
     'Ц' => 'ц',
     'Ч' => 'ч',
     'Ш' => 'ш',
     'Щ' => 'щ',
     'Э' => 'э',
     'Ю' => 'ю',
     'Я' => 'я');

if(@array_key_exists($ch, $arr))$ch = $arr[$ch];
 return $ch;
    };



Ну и пользуюсь так $art = strtolower(lower($art));
, все прекрасно переводи и кирилицу и латиницу и наплевать на какие-то там локали. 

Юзайте. 

PM MAIL   Вверх
Sannis
Дата 4.12.2007, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 375
Регистрация: 14.8.2007
Где: Москва

Репутация: 1
Всего: 13



Ну, для символа-то прокатит, а если в $art строка?


--------------------
Я Критик Джим, раньше писал моды для IPB 1.3.x-2.3.x, а теперь продвигаю Node.js в массы.
PM MAIL WWW   Вверх
Anarki
Дата 4.12.2007, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 14.3.2005

Репутация: 2
Всего: 11



Цитата(Sannis @ 4.12.2007,  13:39)
Ну, для символа-то прокатит, а если в $art строка?

Код

<?php
function _lower($ch) {
    $arr = array(
     'А' => 'а',
     'Б' => 'б',
     'В' => 'в',
     'Г' => 'г',
     'Д' => 'д',
     'Е' => 'е',
     'Ё' => 'е',
     'Ж' => 'ж',
     'З' => 'з',
     'И' => 'и',
     'К' => 'к',
     'Л' => 'л',
     'М' => 'м',
     'Н' => 'н',
     'О' => 'о',
     'П' => 'п',
     'Р' => 'р',
     'С' => 'с',
     'Т' => 'т',
     'У' => 'у',
     'Ф' => 'ф',
     'Х' => 'х',
     'Ц' => 'ц',
     'Ч' => 'ч',
     'Ш' => 'ш',
     'Щ' => 'щ',
     'Э' => 'э',
     'Ю' => 'ю',
     'Я' => 'я');

    if(array_key_exists($ch, $arr)) {
        $ch = $arr[$ch];
    }
    return $ch;
}
function lower($st) {
    $out = '';
    for($i=0;$i<strlen($st);++$i) {
        $out .= _lower($st{$i});
    }
    return $out;
}
// пример использования
echo lower('РАБОТАЕТ ОТЛИЧНО!');



--------------------
PM WWW   Вверх
smartov
Дата 4.12.2007, 18:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 4
Всего: 259



bizmik
Anarki, фи, это ж костыли smile
PM MAIL   Вверх
Anarki
Дата 5.12.2007, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 14.3.2005

Репутация: 2
Всего: 11



Цитата(smartov @ 4.12.2007,  21:35)
bizmik
Anarki, фи, это ж костыли smile

Они сами просили...


--------------------
PM WWW   Вверх
capitan
Дата 13.12.2007, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 1
Всего: 13



Нужно просто читать ман до конца. Там есть пример:
Код

function cyr_strtolower($a) {
        $offset=32;
        $m=array();
        for($i=192;$i<224;$i++)$m[chr($i)]=chr($i+$offset);
        return strtr($a,$m);
}
function cyr_strtoupper($a) {
        $offset=32;
        $m=array();
        for($i=192;$i<224;$i++)$m[chr($i+$offset)]=chr($i);
        return strtr($a,$m);
}

ex:
 cyr_strtoupper("абвгде"); // АБВГДЕ
 cyr_strtolower("АБВГДЕ"); // абвгде

PM MAIL WWW ICQ   Вверх
pkhits
Дата 2.7.2008, 09:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 2.7.2008

Репутация: нет
Всего: нет



и ведь чего только не понаписали... и компиляция и версия не та... "форум программистов".. вместо решения проблемы функцию написали...

не пудрите людям мозги!

где-нить в начале своего файла пропишите:

setlocale(LC_ALL, 'ru_RU.CP1251');

и всё будет нормально!  smile 

Это сообщение отредактировал(а) pkhits - 2.7.2008, 09:46
PM MAIL   Вверх
skyboy
Дата 2.7.2008, 10:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 8
Всего: 260



Цитата(pkhits @  2.7.2008,  08:45 Найти цитируемый пост)
и компиляция и версия не та... "форум программистов".. вместо решения проблемы функцию написали...не пудрите людям мозги!

та ну на. ещё скажи, что тут про setlocale не говорили  smile 
PM MAIL   Вверх
slaw
Дата 2.7.2008, 10:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 19.4.2008

Репутация: 1
Всего: 1



Цитата(pkhits @  2.7.2008,  09:45 Найти цитируемый пост)
где-нить в начале своего файла пропишите:setlocale(LC_ALL, 'ru_RU.CP1251');и всё будет нормально!

единственно верное решение (!)
PM MAIL WWW   Вверх
smartov
Дата 2.7.2008, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 4
Всего: 259



pkhits, о великий! Спасибо что просветил нас тёмных!  smile  Аминь.
PM MAIL   Вверх
OrkZ
Дата 20.10.2008, 04:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 27.4.2007

Репутация: нет
Всего: нет



setlocale (LC_CTYPE, array ('ru_RU.CP1251', 'rus_RUS.1251'));
однозначно поможет !
(кодировку можно ставить по выбору)
PM MAIL   Вверх
vpokorp
Дата 5.12.2008, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 113
Регистрация: 5.4.2006

Репутация: нет
Всего: нет



чето не то 

setlocale (LC_CTYPE, 'ru_RU'); получилось вот что:

Код

абвгдежзийклмнопрстуфхцчшщъыьэюяАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ      исходник
абвгдежзийклмнопрстуфхцчшщъыьэюяабвгдежзийклмнопРСТУФХЦЧШЩЪЫЬЭЮЯ       нижн. регистр поменяло только половину букв
АБВГДЕЖЗИЙКЛМНОПрЎўЈ¤Ґ¦§Ё©Є«¬э®ЇАБВГДЕЖЗИЙКЛМНОП°±Ііґµ¶·ё№є»јЅѕї        верх.регистр поменяло половину зато и другую половину выкинуло

setlocale (LC_CTYPE, array ('ru_RU.CP1251', 'rus_RUS.1251')); вообще ничего не поменяло

 ps  версия 5,2,6 


Это сообщение отредактировал(а) vpokorp - 5.12.2008, 21:00
PM   Вверх
smartov
Дата 6.12.2008, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


свой собственный
****


Профиль
Группа: Экс. модератор
Сообщений: 4225
Регистрация: 2.2.2006
Где: NJ

Репутация: 4
Всего: 259



vpokorp
Код

setlocale(LC_ALL, 'ru_RU.CP1251');

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0762 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.