php транслитерация с английского на русский

Русский текст в транслит на PHP

php транслитерация с английского на русский. Смотреть фото php транслитерация с английского на русский. Смотреть картинку php транслитерация с английского на русский. Картинка про php транслитерация с английского на русский. Фото php транслитерация с английского на русский

Например, если имя «Михаил«, то логин должен быть «mihail«. Если такой логин уже занят, то тогда логин «mihail1«, если и он уже занят, то «mihail2» и так далее до свободного. Теперь, собственно, возвращаемся к теме статьи. Вот простейшая функция, которая переводит русский текст в транслит:

Думаю, что здесь код очень прозрачный: есть 2 массива с одинаковым числом элементов. В первом массиве буквы русского алфавита, а во втором в соответствующих позициях их написание в транслите. Затем идёт обычная замена с помощью функции str_replace() и возврат результата.

Вот таким образом делается перевод русского текста в транслит на PHP.

php транслитерация с английского на русский. Смотреть фото php транслитерация с английского на русский. Смотреть картинку php транслитерация с английского на русский. Картинка про php транслитерация с английского на русский. Фото php транслитерация с английского на русский

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

Комментарии ( 6 ):

Еще есть такая полезная функция как strtr

Смысле, Вы хотите, чтобы полученные данные были переведены в транслит?

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.

Copyright © 2010-2021 Русаков Михаил Юрьевич. Все права защищены.

Источник

Transliterator::transliterate

(PHP 5 >= 5.4.0, PHP 7, PHP 8, PECL intl >= 2.0.0)

Описание

Преобразует строку или её часть, используя транслитератор ICU.

Список параметров

Строка для транслитерации.

Начальный индекс, включительно, (в кодовых единицах UTF-16), с которого начинается часть строки, предназначенная для транслитерации. Индексация начинается с 0. Текст до этой позиции останется как есть.

Начальный индекс, не включая, (в кодовых единицах UTF-16), которым заканчивается часть строки, предназначенная для транслитерации. Индексация начинается с 0. Текст с этой позиции останется как есть.

Возвращаемые значения

Преобразованная строка в случае успешного выполнения или false в случае возникновения ошибки.

Примеры

Пример #1 Конвертация экранированной UTF-16 строки

Результатом выполнения данного примера будет что-то подобное:

Смотрите также

User Contributed Notes 5 notes

Sorry, for posting it again, but I found a bug in my code:

Here’s my new code, including an example:

var_dump(transliterator_transliterate(‘Any-Latin; Latin-ASCII; [\u0100-\u7fff] remove’,
«A æ Übérmensch på høyeste nivå! И я люблю PHP! есть. fi»));
// string(50) «A ae Ubermensch pa hoyeste niva! I a lublu PHP! est. fi»

Also an example here:

var_dump(iconv(«UTF-8», «ASCII//TRANSLIT//IGNORE», transliterator_transliterate(‘Any-Latin; Latin-ASCII’,
«A æ Übérmensch på høyeste nivå! И я люблю PHP! есть. fi»));
// string(50) «A ae Ubermensch pa hoyeste niva! I a lublu PHP! est’. fi»

You can create slugs easily with:

echo slugify ( «Я люблю PHP!» );
?>

There are some possibly undesirable conversions with ASCII//TRANSLIT//IGNORE or your users may require some custom stuff.

You might want to run a substitution up front for certain things, such as when you want 3 letter ISO codes to replace currency symbols. £ transliterates to «lb», for example, which is incorrect since it’s a currency symbol, not a weight symbol (#).

ASCII//TRANSLIT//IGNORE does a great job within the realm of possibility 🙂

When it doesn’t do something you want it to, you can set up a CSV with one replacement per line and run a function like:

or you can write some regexes. Transliterating using ASCII//TRANSLIT//IGNORE works so well that your map probably won’t be very long.

= ‘àáâãäçèéêëìíîïñòóôõöùúûüýÿ
ÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ’ ;
$rule = ‘NFD; [:Nonspacing Mark:] Remove; NFC’ ;

Источник

Транслитерация символов на PHP

php транслитерация с английского на русский. Смотреть фото php транслитерация с английского на русский. Смотреть картинку php транслитерация с английского на русский. Картинка про php транслитерация с английского на русский. Фото php транслитерация с английского на русскийТранслитерация сегодня применяется довольно обширно, в различных приложениях и не только. Кто не слышал о том, что такое транслитерация, немного поясню. Чтобы перевести знаки одной письменности в знаки другой удобно использовать транслитерацию. При этом каждый знак, либо последовательность знаков одной системы письма передается одним и тем же знаком или последовательностью другой системы письма. Данную систему можно было наблюдать ещё в момент появления мобильной связи, к примеру, когда вы пишите SMS сообщение на русском языке, а адресату приходит сообщение уже с транслитерацией, с буквами английского алфавита.

В сети интернет транслитерация также используется довольно часто, как правило, там, где есть необходимость конвертации символов русского языка на английский. Одним из ярких примеров является ЧПУ, в них традиционно содержаться закладываются названия страниц, а так же отсекаются все лишние символы. Такая реализация URL адресов может положительно повлиять на продвижение страниц сайта в поисковых системах.

Рассмотрим довольно простой пример, который демонстрирует транслитерацию текста с русского на английский язык.

В данном примере, ключевым моментом является использование штатной функции PHP strtr, с посредством которой производится замена символов, а так же комбинаций символов. Более подробно возможность данной функции документирована в документации PHP, и при необходимости вы можете с ней разобраться более детально.
В примере выше строка транслитерируется таким образом, что для использования в URL лучше не оставлять символов пробела, а заменять знаком тире, либо нижним подчеркиванием. Исправим ситуацию, рассмотрим второй пример, который транслитерирует строку, таким образом, который необходим для использования в URL.

В данном примере реализованы две функции: translit и makeUrlCode. Функция translit производит транслитерацию строки, вторая функция makeUrlCode получая в качестве параметров строку, передает её функции translit, затем переводит результат в строку нижнего регистра, а так же удаляет/заменяет все ненужные символы. В итоге на выходе получается код, пригодный для использования его в URL.

Источник

Функция для транслитерации url на php

php транслитерация с английского на русский. Смотреть фото php транслитерация с английского на русский. Смотреть картинку php транслитерация с английского на русский. Картинка про php транслитерация с английского на русский. Фото php транслитерация с английского на русский

При создании сайтов и в веб-программировании транслитерация применяется чуть ли не в каждом сайте. Любой url-адрес или файл на сервере для удобства доступа к нему, как правило, записывается латинскими буквами. Поэтому применяется транслитерация для преобразования слов на других языках в аналогичные последовательности латинских букв. В частности, транслитерация применяется для преобразования кириллических букв в транслит.

С другой стороны в русском алфавите используется 33 буквы, а в английском всего лишь 26, и поэтому закодировать все русские буквы одной латинской буквой не получится. Для этого следует использовать две-три буквы или специальные символы. Иначе обратное преобразование из транслита в оригинальный текст без потерь будет невозможна.

Когда-то я задавал себе все эти вопросы и решил найти свой наиболее оптимальный вариант транслитерации русских букв в латиницу. Когда-то ещё на заре появления мобильных технологий мне попалась одна небольшая книжечка от сервиса БиОнЛайн, где и приводилась таблица соответствия букв русского и английского алфавитов. Не сложно догадаться, что при отправке SMS тоже очень часто применяется транслитерация. С точки зрения телекоммуникаций, чем меньше символов мы выделяем для передачи нашего сообщения, тем эффективнее наша система передачи.

АБВГДЕЁ
ABVGDEYO
ЖЗИЙКЛМ
ZHZIJKLM
НОПРСТУ
NOPRSTU
ФХЦЧШЩЪ
FHTSCHSHSCH«
ЫЬЭЮЯ
YEYUYA

В общем, так я решил использовать эту таблицу для транслитерации русских букв в латиницу.

Немного побродив по рунету я нашёл несколько сайтов, где были представлены алгоритмы преобразования в транслит на PHP. И выбрав из них всё самое лучшее и наиболее эффективное написал 3 функции для преобразования в транслит и обратно и для преобразования строки в валидный url-адрес.

Итак, ниже привожу листинг этих функций:

Функция для преобразования в транслит:

Функция для преобразования из транслита в обычный текст:

Функция для преобразования строки в валидный url-адрес:

Добавлю немного разъяснений как они работают.

Функции translit() и antitranslit() очень похожи и занимаются непосредственно заменой одних символов другими. На входе они принимают два параметра:

Естественно, массивы для преобразования одних символов другими можно изменить своими наборами символов. И это будут ещё другие варианты для получения транслитерации кириллического текста.

Вначале происходит преобразование HTML-сущностей в соответствующие символы функций html_entity_decode().

Далее происходит очистка строки от HTML-тегов и начальных/конечных пробелов функциями strip_tags и trim() соответственно.

Далее происходит преобразование регистра букв в нижний регистр функциями strtolower() или mb_strtolower() (для кодировки utf-8).

После выборки всех недопустимых символов функция preg_replace() их заменяет пустой строкой.

Далее та же функция preg_replase() заменяет все пробельные символы и дефисы одним дефисом. И после этого если в начале или в конце остался лишний дефис, то он удаляется функцией trim().

Для некоторых браузеров, например старых версий Internet Explorer максимальная длина url-адреса составляла 2048 байт. Хотя современные браузеры поддерживают url-запросы ещё большей длины, всё же лучше ограничить достаточно длинную строку конечным числом символов, чтобы избежать возможных ошибок и зависаний браузеров. Да и пользователю будет легче скопировать и передать более короткий url-адрес.

Поэтому функцией mb_strlen() вычисляем длину полученной строки и если она превышает 255 символов, отрезаем всё лишнее при помощи функции mb_substr().

В приложенном файле translit.php, который вы можете скачать по ссылкам ниже, приводятся примеры работы описанных функций транслитерации и приводятся ссылки на другие сайты по этой теме.

Если вы также пишете сайты на php или задаётесь вопросами о транслитерации, то думаю этот материал будет вам полезен. Пользуйтесь.

Вы вошли на сайт как Гость.

Источник

PHP функция перевода в транслит transliterator_transliterate()

Функция перевода русского текста в транслит используется практически в каждом web-проекте. Например, это применяется для ЧПУ, генерации логина или никнейма по имени пользователя или даже для определения пола по имени! И чаще всего внутри себя представляет что-то типа:

Так вот, никогда так не делайте! Потому что в PHP начиная с версии 5.4 которая вышла в 2012 году уже существует расширение intl, содержащий класс Transliterator и функцию transliterator_transliterate для решения этой задачи.

Транслит русских имён и фамилий при помощи PHP

Сперва нужно установить расширение. Я буду делать это для CentOS:

Как и принято для старых версий PHP, с модулем intl, в частности с Transliterator можно работать как в ООП-стиле, так и в процедурном. Например, для перевода имён на кириллице в транслит удобнее всего использовать такой код:

Именно такой вариант наиболее грамотно работает с нюансами русскоязычных имён. Такой код позволит легко получить из имени Юлия — Yulia. Другие опции транслитератора выглядят более коряво, а Ulia уже не выглядит как имя.

Транслитерация с русского на английский в PHP

К сожалению, официальная документация на этот модуль отсутствует. И вместо объяснения нюансов работы можно прочесть только: к настоящему времени эта функция еще не была документирована; для ознакомления доступен только список аргументов. Однако, можно посмотреть стороннюю документацию. Также можно использовать цепочки транслитераций. Например, нельзя напрямую транслитерировать корейский в русский. Однако, можно сначала транслитерировать корейский в латинский алфавит, а затем латиницу в кириллицу. Получается такая цеопчка: 김, 국삼 — Gim, Gugsam — Гим, Гугсам. Работает это примерно так:

Также можно в режиме онлайн поиграться с разными опциями транслитерации. Опций реально много и они помогут решить большинство задач по обработке текста:

Коротко о PHP расширении intl ICU

API расширения максимально соответствует оригинальному API ICU. Благодаря этому документация по ICE может использоваться при работе в PHP.

Расширение интернационализации Intl — это обёртка для библиотеки ICU, позволяющей программистам на PHP производить форматирование, транслитерацию, преобразование кодировок, операции с календарём, сравнение совместимое с UCA, определение границ текста, а также работать с идентификаторами локалей, временными зонами и графемами.

Читайте также

Стандартные библиотеки PHP умеют генерировать только целые случайные числа. Однако, возникают задачи где нужно не целое рандомное число с максимально…

Иногда при обработке с помощью PHP больших и не очень данных, можно словить досадную ошибку посреди выполнения скрипта: PHP Fatal…

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *