DWWEB.RU
СКРИПТЫ

Кириллический адрес кодирование декодирование

2019/01/18 Марат 274 0 PHP |

Мы столкнулись с кириллическим адресом и вдруг... у нас возникли проблемы. Я конечно, краем уха слышал об этом, ну вот и они докатились до меня!

Сперва давайте коснемся немного теории, и первое, что хочется сказать, что ничего внятного я так и не смог найти, где четко было бы сказано, как формируются кириллические адреса и вообще, как это работает!

Нам не столь это важно, но тем не менее, что удалось мне понять из всего прочитанного и как я понял, как это работает. Человек выбирает кириллический адрес «admin@домен.рф» и система его кодирует в соответствующий адрес на латинице и это получится -  «admin@xn--d1acufc.xn--p1ai»

Это называется – punycode - стандартизированный метод преобразования последовательностей Unicode-символов.

Если по-русски, то преобразование кириллического адреса в адрес латинскими буквами – не путать с транслитерацией!

Как преобразовать кириллический адрес в нормальный и обратно!?

Далее эта ссылка уже есть, но здесь она точно должна быть, как пример того, как можно преобразовать кириллический адрес в punycode

В общих словах с теорией разобрались, теперь приступим к самому преобразованию, чтобы не мучатся назовем это функцией punycode.

Как работает преобразование punycode и встроить на сайт

Теперь нам нужно либо найти, либо написать самостоятельно скрипт кодирования и декодирования в punycode. В интернете уже есть готовые и решения поэтому, мы возьмем его и переделаем его под наши потребности.

Вот наш код:

<?php

require_once('idna_convert.class.php');

$idn = new idna_convert(array('idn_version'=>2008));

$punycode=(stripos($punycode, 'xn--')!==false) ? $idn->decode($punycode) : $idn->encode($punycode);

echo $punycode;

?>

И нам нужен дополнительный файл - idna_convert.class.php - скачать как обычно в конце страницы

Извлекаем архив, бросаем в ту же папку, где и будет файл с выше указанным файлом и у вас должно получиться вот так.

Ну и дальше применить по своему усмотрению очень просто. Прогоняете переменную, в которой находится ваш адрес чрез функцию punycode и получаете результат.

P.S

Пример кириллического адреса

Удивительно! Но по нескольким сайтам прошелся, но нигде не увидел конкретного примера кириллического адреса, который не прошел кодирование

Поэтому вот здесь приведем пример кириллического адреса без кодирования:

http://xn--80arbjktj.xn--p1ai/

А реальный адрес:

http://мойсайт.рф/
Не забудь !
Название скрипта :Кириллический адрес кодирование декодирование(Punycode ))
Скрипт № 83.4
Пример
Скачать - архив
Все скрипты на одной странице
Оставить комментарийCOMMENTS+
Сообщений пока нет - Вы можете стать первым
BBcode
нажмите, чтобы загрузить аватар
Загрузить свой аватар(max ширина, высота = 100px) ( как это работает)

Закрыть
+ =
Подписаться
Теги:
кодирование русский адресдекодирование русский адреспример декодирования кириллических адресовдекодировать кириллический адрес в нормальныйкак преобразовать кириллический адрес использование punycode

НАШИ ПРОЕКТЫ : Проекты находятся в разной степени готовности (просто их столько, что времени не хватает…) Все статьи авторские, при копироавании активная ссылка обязательна DwWeb.ru! © 2015 - 2019