中文域名punycode编码转换-PHP实现
# PHP
中文域名编码转换(punycode 编码),PHP实现
使用PHP内置扩展
a. 开启扩展
- 找到 php.ini 文件并打开
- 搜索 extension=php_intl.dll 找到后去掉最前面的分号
;extension=php_intl.dll
变成extension=php_intl.dll
如下图
b. 使用函数转换
函数介绍:
string idn_to_ascii ( string $domain [, int $options = IDNA_DEFAULT [, int $variant = INTL_IDNA_VARIANT_2003 [, array &$idna_info ]]] )
string idn_to_utf8 ( string $domain [, int $options = IDNA_DEFAULT [, int $variant = INTL_IDNA_VARIANT_2003 [, array &$idna_info ]]] )
例子:
$domain = idn_to_ascii('中国.com', IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46);
$domain1 = idn_to_utf8($domain, IDNA_DEFAULT, INTL_IDNA_VARIANT_UTS46);
var_dump($domain); // 输出 string(14) "xn--fiqs8s.com"
var_dump($domain1);// 输出 string(10) "中国.com"