winsom
@winsom
так себе

Как сделать транслит домена на латинице в кириллицу?

Например:
yandex.ru в яндекс.ру
Задача вывести урл на латинице полностью в кирилицу на странице!
Реально это?
remont-mebeli.ru/doma-na-dache-v-kvartire
выводим:
ремонт мебели ру дома на даче в квартире
  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
winsom
@winsom Автор вопроса
так себе
<?php

// Define the function to transliterate a string from Latin to Cyrillic
function latin_to_cyrillic($string) {
  $latin_chars = array(
    'a', 'b', 'v', 'g', 'd', 'e', 'zh', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'ts', 'ch', 'sh', 'sht', 'y', 'a', 'i', 'y', 'e', 'u', 'o', 'A', 'B', 'V', 'G', 'D', 'E', 'Zh', 'Z', 'I', 'Y', 'K', 'L', 'M', 'N', 'O', 'P', 'R', 'S', 'T', 'U', 'F', 'H', 'Ts', 'Ch', 'Sh', 'Sht', 'Y', 'A', 'I', 'Y', 'E', 'U', 'O'
  );
  $cyrillic_chars = array(
    'а', 'б', 'в', 'г', 'д', 'е', 'ж', 'з', 'и', 'ы', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т', 'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ь', 'ю', 'я', 'й', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ь', 'Ю', 'Я', 'Ы'
  );

  return str_replace($latin_chars, $cyrillic_chars, $string);
}

// Parse the URL into its parts
$url =  $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];



$parts = parse_url($url);

// Transliterate each part of the URL
$scheme = latin_to_cyrillic($parts['scheme']);
$host = latin_to_cyrillic($parts['host']);
$path = latin_to_cyrillic($parts['path']);
$query = latin_to_cyrillic($parts['query']);

// Remove the slash and dots from the path and replace them with hyphens
$path = str_replace(array('/', '.','-'), ' ', $path);

// Assemble the transliterated URL
$cyrillic_url = "$scheme $host $path $query";

// Output the transliterated URL
echo $cyrillic_url;


?>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
В пхп транслитерация производится только в сторону латиницы, во всяком случае нативными средствами. Обратно можно только самописными массивами соответствий и заменой через strtr(). Веселуха начнется со звукосочетаниями на подобие ht, ght и тому подобными...

Реально это?
Геморно, но реально. В некоторых случаях получится фигня. В некоторых просто кривовато-шепелявая поделка, но в целом, как и в случае транслита с русского на латиницу, более-менее похоже.

"remont-mebeli.ru/doma-na-dache-v-kvartire" -> "ремонт мебели ру дома на даче в квартире"
естественно тире, точки и прочие слэши надо менять на пробел.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы