 |
 |
Форум сетевых администраторов » Программирование » PHP » Перевод букв в верхний регистр
| Автор |
| Тема |
 |
|
 |
|
|
|
Участник+
|
Перевод букв в верхний регистр |
[сооб. #76549]
23-05-2005 17:36 |
|
Участник+


Зарегистрирован: Mar 2004
Место проживания: Житомир
Публикаций: 632
Статус:  |
Не переводятся некоторые украинские буквы в верхний регистр, а именно: і, ї, є.
Делаю так:
PHP:
function upto($str)
{
setlocale (LC_ALL, "ru_RU.CP1251");
return preg_replace("/([a-zxE0-xFF])/e","chr(ord('\1')-32)",($str));
}
echo upto("~ телефоний довiдник ~");
Пример: Контактна інформація - фразы "Контактна інформація" и "Телефонний довідник".
Если использовать стандартную функцию strtoupper(), то английские буквы в таком случае переводятся в верхний регистр, а русские и украинские буквы вообще не переводятся в верхний регистр.
С чем может быть связана проблема? Может с версией php (4.3.11) или mysql (4.0.24) ? Хотя нет, не в пхп дело, несколько друзей напряг, у них разные версии пхп установлены, на линуксовых машинах не работает, а вот на виндовых - работает.
Есть предположение, что можно каким-то образом модифицировать написанную выше функцию upto($str). Я выяснил, что украинские буквы находятся в диапазоне 240 - 249 (F0 - F9). Остается теперь выяснить, как это все склеить в кучу, чтобы оно заработало.
Нид хелп!
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
23-05-2005 17:36 |
|
|
Участник
|
[QUOTE]
Если использовать стандартную функцию... |
[сооб. #76554]
24-05-2005 11:26 |
|
Участник

Зарегистрирован: Apr 2005
Место проживания:
Публикаций: 35
Статус:  |
quote:
Если использовать стандартную функцию strtoupper(), то английские буквы в таком случае переводятся в верхний регистр, а русские и украинские буквы вообще не переводятся в верхний регистр.
С чем может быть связана проблема?
С тем, что только английские буквы имеют одни и те же коды в разных кодировках. Функция преобразования русских букв в верхний регистр будет различаться для кодировок KOI8-R, KOI8-U, Windows-1251 или UTF-8. Тебе какая нужна?
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
24-05-2005 11:26 |
|
|
Участник+
|
| Сайт у меня на windows-1251, буду благадоране... |
[сооб. #76555]
24-05-2005 11:44 |
|
|
Участник
|
| Подожди, если у тебя только буквы і, ї, є не... |
[сооб. #76559]
24-05-2005 13:35 |
|
Участник

Зарегистрирован: Apr 2005
Место проживания:
Публикаций: 35
Статус:  |
Подожди, если у тебя только буквы і, ї, є не заменяются на заглавные, так и добавь в функцию три строчки с str_replace, которые будут их заменять... не?
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
24-05-2005 13:35 |
|
|
Участник+
|
| или, чтобы не париться, пойти более другим... |
[сооб. #76568]
24-05-2005 17:26 |
|
Участник+


Зарегистрирован: Apr 2002
Место проживания: Россия, Пятигорск
Публикаций: 69
Статус:  |
или, чтобы не париться, пойти более другим путем, указав полную таблицу транслитерации:
PHP:
function upto($str)
{
return strtr($str,'абвгде...и т.д...','АБВГДЕ...и т.д...');
}
__________________
Всякое решение порождает новые проблемы...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
24-05-2005 17:26 |
|
|
Участник+
|
sVs
спасибо, работает, все єлементарно... |
[сооб. #76604]
26-05-2005 14:59 |
|
Участник+


Зарегистрирован: Mar 2004
Место проживания: Житомир
Публикаций: 632
Статус:  |
sVs
спасибо, работает, все єлементарно просто, как я раньше не додумался 
ЗЫ: а по сути... от чего такая проблема появляется - на винде работает, а на линухе нет? А то украинский язык уже не первый год живет, а до сих пор косяки есть 
Xrobak добавил 26-05-2005 в 15:01:57:
Enkryptor
по идее вариант, предложенный sVs лучше применить, хотя твой тоже будет работать, только вот быстрее работать будет именно вариант от sVs, если я не ошибаюсь конечно...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
26-05-2005 14:59 |
|
|
Участник
|
| [QUOTE]ЗЫ: а по сути... от чего такая проблема появляется... |
[сооб. #76635]
29-05-2005 19:07 |
|
Участник
Зарегистрирован: Nov 2004
Место проживания:
Публикаций: 21
Статус:  |
quote: ЗЫ: а по сути... от чего такая проблема появляется - на винде работает, а на линухе нет? А то украинский язык уже не первый год живет, а до сих пор косяки есть 
В своё время я такую проблему(только с рус. буквами) был вынужден решать через regexp...
А вообще говоря, предлагалось использоать strtoupper(), настроив локаль. К примеру, посредством setlocale()
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
29-05-2005 19:07 |
|
|
Участник+
|
Lesnix
про setlocale() я знаю, но реально на... |
[сооб. #76650]
30-05-2005 12:53 |
|
Участник+


Зарегистрирован: Mar 2004
Место проживания: Житомир
Публикаций: 632
Статус:  |
Lesnix
про setlocale() я знаю, но реально на линухе она не спасает, проверено на разных линуксовых машинах + я в самом первом посту писал пример функции, в которой настраивалась локаль, вот.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
30-05-2005 12:53 |
|
|
lol +
|
| Xrobak попробуй фразу конвертнуть iconv'oм (http://lv2.php.net/iconv).... |
[сооб. #76656]
30-05-2005 15:49 |
|
lol +


Зарегистрирован: May 2002
Место проживания: Latvia/D-pils
Публикаций: 451
Статус:  |
Xrobak попробуй фразу конвертнуть iconv'oм (http://lv2.php.net/iconv). А затем уже менять регистр.
__________________
Национальность - русский, вероисповедание - программист.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
30-05-2005 15:49 |
|
|
Участник+
|
blacki
хм... и в какую же кодировку конвертить?... |
[сооб. #76663]
30-05-2005 18:58 |
|
Участник+


Зарегистрирован: Mar 2004
Место проживания: Житомир
Публикаций: 632
Статус:  |
blacki
хм... и в какую же кодировку конвертить? УТФ-8 чтоли? Тогда получается мне весь контент сайта в УТФ-8 переганять прийдется?
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
30-05-2005 18:58 |
|
|
lol +
|
| Xrobak мне так и приходится делать... (правда... |
[сооб. #76676]
31-05-2005 09:02 |
|
lol +


Зарегистрирован: May 2002
Место проживания: Latvia/D-pils
Публикаций: 451
Статус:  |
Xrobak мне так и приходится делать... (правда это связанно в большей степени с поддержкой языков)
__________________
Национальность - русский, вероисповедание - программист.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
31-05-2005 09:02 |
|
|
Участник+
|
эх... блина... будем думать тогда  |
[сооб. #76688]
31-05-2005 11:12 |
|
|
|
Формат времени GMT. Текущее время 22:52.
|
Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения. |
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
|
|
|
|
| |
Page generated in 0.12690210 seconds (95.95% PHP - 4.05% MySQL) with 26 queries.
|
 |