在PHP 5.3中有一个非常方便的函数idn_to_ascii(),但我运行的是5.2.17,我无法改变它。我如何将Unicode域名编码为ascii呢?
答案 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版本。