5.2.17中的idn_to_ascii()

时间:2011-03-23 12:52:16

标签: php dns utf idn

在PHP 5.3中有一个非常方便的函数idn_to_ascii(),但我运行的是5.2.17,我无法改变它。我如何将Unicode域名编码为ascii呢?

3 个答案:

答案 0 :(得分:6)

Peter的回答为您提供了PHP 5.2中的官方IDN功能,如果可能的话,它可能是最好的答案。

然而,有些用户将无法在他们的PHP系统上安装PECL库,因此他们需要使用纯PHP编写的转换库,它们可以包含在他们自己的代码中。

幸运的是有一个解决方案:http://phlymail.com/en/downloads/idna/

这是一个PHP类,允许您在unicode和punycode之间进行编码和解码。使用非常简单,不需要任何安装(除了下载并包含在您自己的PHP代码中)。

显然,如果您使用的是PHP 5.3或更高版本,或者如果您可以将PECL库安装到PHP 5.2中,那么您不需要这样做,但如果您不能这样做,那么这是一个很好的选择。

答案 1 :(得分:5)

引用:

  

可以使用此扩展程序安装   从PHP 5.3.0开始的捆绑版本,   或者作为PHP的PECL扩展   5.2.0。换句话说,有两种方法可以安装intl扩展。

说明here

一般安装说明

pecl install intl
pecl install idn

然后在php.ini或相关配置文件中添加扩展名。

答案 2 :(得分:0)

或者,您可以使用apt-get:

进行安装
sudo apt-get install php7.x-intl

您需要将'x'替换为您当前安装的实际php版本。