Код для конвертации домена из IDN в русский вид:
<?php header('Content-Type: text/html; charset=utf-8'); $utf8 = idn_to_utf8('xn--80abcmvbjsf9gg3b.xn--p1ai'); echo 'utf8: ' . $utf8 . '<br>'; echo 'IDN: ' . idn_to_ascii($utf8); //phpinfo(); ?>
Чтобы работала функция idn_to_utf8 должно быть: PHP 5 >= 5.3.0, PECL intl >= 1.0.2, PECL idn >= 0.1.
надо их либо инсталлировать через PECL:
# apt-get install php-pear # apt-get install php5-dev # pecl install idn channel://pecl.php.net/idn-0.2.0 # pecl install intl
либо перекомпилировать PHP с опцией —enable-intl
на самом деле это шутка, для PHP 5.3 достаточно сделать так:
# apt-get install php5-intl # apt-get install php5-idn # /etc/init.d/apache2 restart
, по крайней мере под Ubuntu Server 11.04 32bit
если Apache старый, например 5.2, то его можно обновить следующим образом:
# apt-get upgrade php5 # apt-get upgrade libapache2-mod-php5
но перед этим, возможно, имеет смысл обновить Ubuntu Linux, например, версия 9.10 (2.6.31 on x86) больше не поддерживается (поддержка была до Апреля 2011), но надо иметь ввиду, что при обновлении версии Ubuntu перетираются некоторые конфигурационные файлы, например, такие как php.ini.
ещё есть такие команды:
# apt-get upgrade # apt-get update