函数名:idn_to_utf8()
适用版本:PHP 5 >= 5.3.0, PHP 7, PHP 8
用法:string idn_to_utf8 ( string $domain [, int $options = 0 [, int &$errorcode ]] )
说明:idn_to_utf8() 函数将国际化域名(IDN)转换为 UTF-8 编码。它使用 IDN 扩展库实现,该库必须在 PHP 中启用。
参数:
- $domain:要转换的国际化域名。
- $options:可选参数,用于指定转换选项。默认为0,表示不使用任何选项。以下选项可以通过按位或(|)组合使用:
- IDNA_DEFAULT:默认选项,将域名转换为 Unicode 值,不进行任何额外处理。
- IDNA_ALLOW_UNASSIGNED:允许使用未分配的 Unicode 码位。
- IDNA_USE_STD3_RULES:强制使用 STD3 规则,确保域名符合 DNS 规范。
- IDNA_CHECK_BIDI:检查域名中的双向字符顺序(Bidi)。
- $errorcode:可选参数,用于接收转换过程中的错误码。
返回值:返回转换后的 UTF-8 编码字符串,如果转换失败则返回 FALSE。
示例:
$domain = 'xn--fsqu00a.xn--fiqz9s';
$options = IDNA_DEFAULT | IDNA_USE_STD3_RULES;
$utf8Domain = idn_to_utf8($domain, $options, $errorcode);
if ($utf8Domain === false) {
echo "转换失败,错误码:$errorcode";
} else {
echo "转换成功:$utf8Domain";
}
以上示例将国际化域名 'xn--fsqu00a.xn--fiqz9s' 转换为 UTF-8 编码。使用了默认选项和 STD3 规则,如果转换成功,则输出转换后的域名,否则输出错误码。