ГЛАВНАЯ | HTML | CSS | PHP | JS | ЕЩЁ |

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

2019/01/18 Марат 194 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://мойсайт.рф/
Посмотреть пример и скачать можно по ниже идущей ссылке

Скрипт № 4.6
Название скрипта и номер :Кириллический адрес кодирование декодирование(Punycode ))
Пример - Кириллический адрес кодирование декодирование(Punycode ))
Скачать - архив
Все скрипты на одной страницеС вашими куками, что-то не то..., попробуете перезагрузить страницу..
Теги:
кодирование русский адресдекодирование русский адреспример декодирования кириллических адресовдекодировать кириллический адрес в нормальныйкак преобразовать кириллический адрес использование punycode

Все статьи авторские, при копироавании активная ссылка обязательна DwWeb.ru! © 2015 - 2019