Варкалось. Хливкие шорьки Пырялись по
наве, И хрюкотали зелюки, Как мюмзики в
мове. Льюис Кэрролл. "Бармаглот".
Транслит... Какое томное, волнующее слово! Вот и поговорим
немного о транслитерации. Пишем wap-сайт? Без транслита - никуда.
Только посетителей терять.
Как же грамотно выполнить транслитерацию в PHP? А очень просто! В
этом нам поможет функция strtr(). Отличная, скажу я вам,
функция! Имеет два формата вызова:
- для замены типа "символ-на-символ". Возвращается копия
строки str, в которой символ from[i] заменен на символ to[i] для
всех допустимых i.
string strtr ( string str, array replace_pairs)
- для замены типа "строка-на-строку". В массиве replace_pairs
описаны возможные замены. Ключ элемента массива - это то, что
заменяется, а значение элемента массива с этим ключом - то, на что
заменяется. Возвращается копия строки str, с выполненными
заменами.
Т.к. в транслите некоторые кириллические символы записываются
двумя и более символами (ш = sh и т.д.), то будем использовать
второй формат вызова strtr().
Напишем небольшой скрипт, который можно будет потом подключать к
скриптам, где нужно выполнить транслитерацию.
При вызове скрипта через use.php?enc=latin - будет выдаваться
"Privet! :)", при иных значениям enc - "Привет! :)".
P.S. Приведенный пример отличается простотой и
незатейливостью. На то он и пример. Перед реализацией же
транслитерации в условиях, приближенных к боевым, советую
ознакомиться с моей статьей "Тотальная буферизация PHP-скриптов и...
Светлое будущее" и узнать оттуда, как можно реализовать
транслитерацию целых страниц "малой кровью".
Александр Рябов. Сентябрь 2004,
Украина.
При перепечатке любого материала
с сайта, видимая ссылка на источник www.warayg.narod.ru
и все имена, ссылки авторов обязательны.