我尝试在预安装的Max OSX 10.9.4 PHP实例(5.4.24)中使用idn_to_ascii()
函数。
我阅读了很多Stackoverflow问题,他们大多数人都说:intl是从PHP 5.3开始预编译的,你不需要扩展,它开箱即用。
但是为什么这个PHP实例中的intl函数不可用呢?我刚收到一个
致命错误:在第3行的/path/test.php中调用未定义的函数idn_to_ascii()
另外,我在OSX 10.9上用PHP 5.5.x尝试了XAMPP 1.8.3-4,我也得到了
致命错误:在第3行的/Applications/XAMPP/xamppfiles/htdocs/test.php中调用未定义的函数idn_to_ascii()
这是OSX的问题还是两个PHP实例都有问题?
答案 0 :(得分:1)
intl 捆绑与PHP源代码,但必须使用--enable-intl
编译时选项启用。这两个PHP安装显然不是这种情况。您可以使用php -i | grep intl
进行检查。你可能不得不使用PECL installation method。或者,我建议使用homebrew的homebrew-php tap维护自己灵活的PHP安装。
答案 1 :(得分:0)
问题也出现在Debian 7.9上,你可以用apt-get安装php5-intl包来解决它。
答案 2 :(得分:0)
我的服务器上遇到了同样的问题。与此处提出的解决方案不同,我使用的是PHP版本7.所以我必须安装相应的intl包:
对于PHP 7.1:
sudo apt-get install php7.1-intl
适用于PHP 7.0
sudo apt-get install php7.0-intl