STFW


Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус:  |
не жалко... щас покопаюсь у себя в архиве...
SCHIZO добавил 28-01-2003 в 21:27:29:
а фигли копаться! ту просто все...
делаешь мапу(таблицу трансляции) что=>во что и по этой мапе перекодируешь.
PHP:
$chrmap = Array(
'a'=>'a',
'b'=>'ь',
'6'=>'б'
# и так далее...
# в любой последовательности и комбинациях
# как тебе требуется, хоть мап клавиатуры рус/лат забей
);
$string = 'аб';
$translit = strtr($string,$chrmap);
echo $translit;
#выведет 'a6'
вот и вся функция... т.е. тебе надо туда передать мапу и строку которую хочешь перекодировать а на выходе получить перекодированую строку
PHP:
function cyr_translit($srting,$map) {
return strtr($string,map);
}
можно мапы хранить прямо в теле функции, встроить дополнительные проверки на наличие значений и валидности. Для того чтобы перекодировать туда-обратно не надо два массива, можно перевернуть ключи и значения существующего, еще можно автоматичеки по коду символа определять в какую сторону надо перекодировать и поворачивать таблицу трансляции в нужную сторону отдельно для каждого символа или для всего слова/предложения/сообщения, перекодируя только те символы которые в нецелевом чарсете..
короче много чего можно =)
__________________
FAQ OFF
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|