Конвертирование кирилических доменных имен в IDNA
Для конвертирования кириллического доменного имени в формат IDNA или для обратного преобразования существует класс. Изобретать велосипед не нужно. )
Например: мой-домен.рф ---> xn----htbdnodicd.xn--p1ai
Или наоборот: xn----htbdnodicd.xn--p1ai ---> мой-домен.рф
require './idna_convert/idna_convert.class.php';
$IDN = new idna_convert();
// раскодирование
$encoded = 'xn----htbdnodicd.xn--p1ai';
$decoded = $IDN->decode($encoded);
// кодирование
$encoded = 'мой-домен.рф';
$decoded = $IDN->encode($encoded);