Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.03.2011, 10:28   #1
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию Кодировка utf8. Работа с символами. Перевод русских букв в латинских аналог

Кодировка utf8. Перевожу в латиницу русские символы.

Код:
$st = array(array('а', 'а'), array('б', 'b'), array('в', 'v'))
Решил тупо как в делфи перебором строки через цикл, а не выходит. Тут возникает пару вопросов:
1) Как перебрать символы и сравнить их правильно?
2) Может есть другой более интересный способ?

[add]
Воспользовался функцией strtr. Все получилось, при этом результат на много улучшился по времени, чем просто перебором. Остается теоретический вопрос №2. Рад буду услышать другие способы, менее затратные по времени, или более элегантные. Ну и для общего развития, можно было бы узнать, реально ли первое?

Последний раз редактировалось dr.Chas; 24.03.2011 в 11:36.
dr.Chas вне форума Ответить с цитированием
Старый 24.03.2011, 12:04   #2
ssdm
Форумчанин
 
Регистрация: 20.05.2009
Сообщений: 506
По умолчанию

Это пробовали ?
Код:
<?php
  // функция превода текста с кириллицы в траскрипт
  function encodestring($st)
  {
    // Сначала заменяем "односимвольные" фонемы.
    $st=strtr($st,"абвгдеёзийклмнопрстуфхъыэ_",
    "abvgdeeziyklmnoprstufh'iei");
    $st=strtr($st,"АБВГДЕЁЗИЙКЛМНОПРСТУФХЪЫЭ_",
    "ABVGDEEZIYKLMNOPRSTUFH'IEI");
    // Затем - "многосимвольные".
    $st=strtr($st, 
                    array(
                        "ж"=>"zh", "ц"=>"ts", "ч"=>"ch", "ш"=>"sh", 
                        "щ"=>"shch","ь"=>"", "ю"=>"yu", "я"=>"ya",
                        "Ж"=>"ZH", "Ц"=>"TS", "Ч"=>"CH", "Ш"=>"SH", 
                        "Щ"=>"SHCH","Ь"=>"", "Ю"=>"YU", "Я"=>"YA",
                        "ї"=>"i", "Ї"=>"Yi", "є"=>"ie", "Є"=>"Ye"
                        )
             );
    // Возвращаем результат.
    return $st;
  }
?>
ssdm вне форума Ответить с цитированием
Старый 24.03.2011, 13:02   #3
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Да, почти так и сделал, есть ещё идеи?
dr.Chas вне форума Ответить с цитированием
Старый 24.03.2011, 16:47   #4
kroŧ
Пользователь
 
Аватар для kroŧ
 
Регистрация: 02.05.2010
Сообщений: 69
По умолчанию

utf8_encode(), mb_convert_encoding() перевод из utf8 затем используешь strtr(), str_replace(),preg_replace.
☣☣☣

Последний раз редактировалось kroŧ; 24.03.2011 в 16:51. Причина: дабавил
kroŧ вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Гистограмма количества латинских букв LavcCraft Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 5 17.12.2010 20:27
TWebBrowser и кодировка UTF8.. sxcine Работа с сетью в Delphi 2 04.11.2010 22:55
Кодировка с cp1251 на utf8 в MySQL Droid БД в Delphi 1 13.03.2010 16:43
Выбор латинских букв из массива. Tonik_A Помощь студентам 1 03.01.2010 17:51