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

Поиск:

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


Шустрый
*


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

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



Здравствуйте.
Применяю функцию strtolower(), но на кириллицу не влияет.
Что делать?
PM MAIL   Вверх
belousov
Дата 23.7.2007, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



mistero, А в настройках php кодировку смотрел? она влияет на кодировку однозначно


--------------------
NIHIL VERUM EST LICET OMNIA 
PM MAIL WWW ICQ Skype   Вверх
FlameTH
Дата 23.7.2007, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Это ошибки в компиляции пхп. Просто смените версию на более новую. У меня возникали проблемы в этом и никакие настройки не помогали.
PM MAIL ICQ   Вверх
belousov
Дата 23.7.2007, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Да кстати правильная мысль, какая версия php у тя?


--------------------
NIHIL VERUM EST LICET OMNIA 
PM MAIL WWW ICQ Skype   Вверх
Mal Hack
Дата 23.7.2007, 19:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



FlameTH, теперь что, вместо любого Parse Error будем более новую версию ставить?
И компиляция тут не причем, как и настройка... Вот кодировка сервера - да, влияет, а кодировка, прописанная в php.ini, как показывает практика - редко.

mistero, в принципе, тут уже неоднократно обсуждалось. setlocale() надо прописать.

Это сообщение отредактировал(а) Mal Hack - 23.7.2007, 19:39
PM ICQ   Вверх
mistero
Дата 23.7.2007, 19:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(belousov @ 23.7.2007,  19:35)
Да кстати правильная мысль, какая версия php у тя?

php 4.4.4
PM MAIL   Вверх
FlameTH
Дата 23.7.2007, 19:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Mal Hack, поверь. Это я уже пробовал и локалями. Я держу собственный сервак с кодировками все норм. И только когда я сменил пхп все нормально запахало. Вот так.
PM MAIL ICQ   Вверх
mistero
Дата 23.7.2007, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(FlameTH @ 23.7.2007,  19:33)
Это ошибки в компиляции пхп. Просто смените версию на более новую. У меня возникали проблемы в этом и никакие настройки не помогали.

Извиняюсь за ламерство, но можно ли как-нить на сервере врубить поддержку пхп 5? Локали у меня тоже не пашут.

Это сообщение отредактировал(а) mistero - 23.7.2007, 19:44
PM MAIL   Вверх
FlameTH
Дата 23.7.2007, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Обновите пхп до версии 5+
PM MAIL ICQ   Вверх
Mal Hack
Дата 23.7.2007, 20:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



Не верю. Либо предоставьте доказательства бага на вашей предыдущей версии, который обязательно висит на багтрекере php.net, т.к. такая проблема наверняка бы подняла многих бы людей...

4 ветку я всюиспользовал. И все было нормально. Другой вопрос, что система не знала кирилической кодировки. Тут уж ничего не поможет.

Это сообщение отредактировал(а) Mal Hack - 23.7.2007, 20:29
PM ICQ   Вверх
smartov
Дата 23.7.2007, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



mistero, зависит от Вашей локальной кодировки. Если кодировка не Unicode (UTF-8), то нужно установить локаль, как Вам и подсказывают, если же unicode, то можно поставить (или не ставить если уже есть) и использовать расширение multibyte strings.

http://php.net/mb_strtolower
PM MAIL   Вверх
SelenIT
Дата 23.7.2007, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


баг форума
****


Профиль
Группа: Завсегдатай
Сообщений: 3996
Регистрация: 17.10.2006
Где: Pale Blue Dot

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



На самый крайний случай можно сделать свою замену strtolower - через strtr. Как это ни смешно, но это, наверное, самый надежный вариант для идеальной переносимости...


--------------------
Осторожно! Данный юзер и его посты содержат ДГМО! Противопоказано лицам с предрасположенностью к зонеризму!
PM MAIL   Вверх
Mal Hack
Дата 24.7.2007, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


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

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



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

multibyte strings надо использовать, когда вы работаете со строками, которые 100% находятся в кодировке utf, к примеру данные с формы на сайте, где utf прописанат через <meta>.
PM ICQ   Вверх
smartov
Дата 24.7.2007, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Mal Hack
Цитата(Mal Hack @  24.7.2007,  12:43 Найти цитируемый пост)
просто по лексической нагрузке разы тебя могут несколько не правильно понять.

Да спасибо. Действительно перечитал могут неверно понять.
Конечно речь о том, что если данные в кодировке utf-8 то mb_....
PM MAIL   Вверх
Fally
Дата 25.7.2007, 14:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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





--------------------
Прежде чем задать вопрос на форуме воспользуйтесь поиском.
user posted image
user posted image
PM MAIL   Вверх
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   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




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


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

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