PHP – idn_to_ascii() 函数
phpserver side programmingprogramming
PHP 中的 idn_to_ascii() 函数用于将 Unicode 域名转换为 IDNA ASCII 格式。IDNA 代表"应用程序中的国际化域名"。它是一种处理包含非 ASCII 字符的国际化域名的机制。
语法
string idn_to_ascii( str $domain, integer $flags=IDNA_DEFAULT, integer $variant=INTL_IDNA_VARIANT_UTS46, arr &$idna_info=null )
参数
idn_to_ascii() 接受以下四个参数 −
$domain − 这是要转换的域名;必须采用 UTF-8 编码。
$flags − 此参数是 IDNA_*constants 的组合。
$variant − 此参数使用 INTL_IDNA_VARIANT_2003(用于 IDNA 2003)或 INTL_IDNA_VARIANT_UTS46(用于 UTS#46)。
$idna_info −此参数仅在 $variant 参数中使用 INTL_IDNA_VARIANT_UTS46 时使用。
返回值
此函数返回以 ASCII 兼容格式编码的域名,失败时返回 False。
示例 1
<?php // String domain print idn_to_ascii('täst.de',0); ?>
输出
xn--tst-qla.de
示例 2
<?php // ISO-8859-2 编码字符串 echo idn_to_ascii(utf8_encode('täst.de')); // 无法将包含非 ASCII 字符的域名转换为 ASCII 码,但 // 该域名已以"xn--"开头 $ascii = idn_to_ascii("xn--".chr(0xC3).chr(0xA4)); print_r($ascii); ?>
输出
xn--tst-fea82a.de