голосование
BASH
PHP
Javascript
HTML
Программы
Firebird
Майнинг
PostgreSQL
Хостинг
Железо
Ресурсы
GIT
SEO
Oracle
Python
Мобильные технологии
Ремонт
Mercurial
Заработок на сайте
Docker
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Как перевести кириллические слова в транслит PHP

Как при помощи функции PHP перевести кириллические слова в транслит (латиницу)? В интернете много способов. Я скопировал функцию из интернета и немного переделал её. Эта функция нужна для переименования кириллических имён файлов в имена на латинице. Переменная $translit - это ассоциативный массив PHP.


/*
 * translit($str)
 * транслитерация символов
 * все символы, которые не входят в массив $translit, 
 * будут заменены на _ (нижнее подчёркивание) 
 * */

function translit($str) 
{
$translit = array(
	        "А"=>"A","Б"=>"B","В"=>"V","Г"=>"G",
	        "Д"=>"D","Е"=>"E","Ж"=>"J","З"=>"Z","И"=>"I",
	        "Й"=>"Y","К"=>"K","Л"=>"L","М"=>"M","Н"=>"N",
	        "О"=>"O","П"=>"P","Р"=>"R","С"=>"S","Т"=>"T",
	        "У"=>"U","Ф"=>"F","Х"=>"H","Ц"=>"TS","Ч"=>"CH",
	        "Ш"=>"SH","Щ"=>"SCH","Ъ"=>"","Ы"=>"YI","Ь"=>"",
	        "Э"=>"E","Ю"=>"YU","Я"=>"YA","а"=>"a","б"=>"b",
	        "в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j",
	        "з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
	        "м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
	        "с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
	        "ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
	        "ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya"      
	    );
	    // работают элементы массива
	    $str = strtr($str,$translit);				

            // дополнительные очистки
	    // в нижний регистр
	    $str = mb_strtolower($str);
	    // заменяем все ненужное нам на "-"
	    $str = preg_replace('/[^A-Za-z0-9_]/', '_', $str);
	    // удаляем начальные и конечные '_'
	    $str = trim($str, "_");
	    return $str;
}

$str = 'Читайте книги «PHP для начинающих»  2015';
echo translit($str);

Функция mb_strtolower() переводит заглавные буквы в прописные. Изменится начертание строки. Если попадается специальный символ, то он заменяется на нижнее подчёркивание. $,№,% заменяются на "_". Благодаря функции preg_replace() происходит замена всех символов не относящихся к буквам и числам. На всякий случай я очищу начало и конец строки от нижнего подчеркивания "_".

просмотры: 1567, уровень: лёгкий уровень, рейтинг: 0, дата: 2015-12-26 14:02:21
проголосовать:

Комментарии:






поиск
реклама
банеры
домен RU всего за 99 рублей
http://trainingweb.ru/redirect/domains домен RU домен RU всего за 99 рублей
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/pingadmin мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP