国际化域名。
比如中文域名,在浏览器地址栏以中文显示,但实际是以 punycode 进行解析和访问。服务器设置 server_name 时不能直接设置中文域名,而是设置中文域名对应的 punycode。
PHP 提供的 IDN 函数可以把非英文域名转换为 punycode,详见 PHP IDN Functions。
idn_to_ascii | 将域名转换为 IDNA ASCII 编码 |
idn_to_unicode | idn_to_utf8 别名 |
idn_to_utf8 | 将域名 从 ASCII 编码转换为 Unicode 编码 |
代码示例
$xn_idn = idn_to_ascii('郝越.我爱你'); echo $xn_idn; // xn--vq3al9d.xn--6qq986b3xl $idn = idn_to_utf8($xn_idn); echo $idn; // 郝越.我爱你
使用 IDN 函数之前需要先安装 php5-intl 扩展:
sudo apt-get install php5-intl