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

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

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

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






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