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

Как перевести кириллические слова в транслит 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() происходит замена всех символов не относящихся к буквам и числам. На всякий случай я очищу начало и конец строки от нижнего подчеркивания "_".

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

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






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