Отправить заявку

PHP - конвертация кириллического домена (punycode)

Punycode (произносится как «пуникод») — стандартизированный метод преобразования последовательностей Unicode-символов в так называемые ACE-последовательности, которые состоят только из алфавитно-цифровых символов, как это разрешено в доменных именах. Punycode был разработан для однозначного преобразования доменных имен в последовательность ASCII-символов.

Допустим, Вы зарегистрировали домен на русском языке: мой-сайт.com.ua - тогда данное доменное имя в различных представлениях будет выглядеть так:

IDN (Unicode): мой-сайт.com.ua
Punycode (ACE): xn----8sbzclmxk.com.ua

Скачать php-класс для конвертации.

Пример использования:

<?php
require_once('idna_convert.class.php');
$idn = new idna_convert(array('idn_version'=>2008));
$punycode=isset($_REQUEST['punycode']) ? stripslashes($_REQUEST['punycode']) : '';
$punycode=(stripos($punycode, 'xn--')!==false) ? $idn->decode($punycode) : $idn->encode($punycode);
?>
<table border="0" cellpadding="2" cellspacing="2" align="center">
<tr><td>
Конвертация интернациональных имен доменов (IDN) в кодировку Punycode и обратно.<br /><br />
</td></tr>
<tr><td><form action="" method="get">
<input type="text" id="punycode" name="punycode" value="<?php echo htmlentities($punycode, null, 'UTF-8'); ?>" maxlength="255" size="48" />  
<input type="submit" value="Перевод" />
</form></td></tr>
</table> 
Другие публикации