中文域名punycode编码转换-PHP实现

中文域名编码转换(punycode 编码),PHP实现

使用PHP内置扩展

a. 开启扩展

  1. 找到 php.ini 文件并打开
  2. 搜索 extension=php_intl.dll 找到后去掉最前面的分号 ;extension=php_intl.dll 变成 extension=php_intl.dll 如下图

1.gif

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"

添加新评论