PHP 5.3似乎默认缺少Intl扩展

时间:2013-02-21 13:15:18

标签: php linux ubuntu icu intl

我的系统是Ubuntu 12.04,PHP 5.3,我正在尝试运行一些基本的Intl代码:

<?php
$coll  = collator_create('en_US');
$result = collator_compare($coll, "string#1", "string#2");

并输出

PHP Fatal error:  Call to undefined function collator_create()

自5.3版以来,不应该将Intl扩展与PHP捆绑在一起吗?

使用此命令行通过apt-get安装PHP(我不使用Apache):

apt-get install php5 php5-cli php5-mysql php5-cgi php5-fpm php5-curl php-apc php5-memcache php5-memcached php5-common php5-gd php-xml-parser php-pear php5-imap php5-mcrypt php5-xdebug php5-suhosin

以下是php -v产生的内容:

PHP 5.3.10-1ubuntu3.5 with Suhosin-Patch (cli) (built: Jan 18 2013 23:40:19) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
    with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans
    with Suhosin v0.9.33, Copyright (c) 2007-2012, by SektionEins GmbH

3 个答案:

答案 0 :(得分:26)

您在安装时指定--enable-intl以使用捆绑的intl版本,或者您可以通过PECL安装它。请参阅:http://www.php.net/manual/en/intl.installation.php

apt-get install php5-intl也可以。

答案 1 :(得分:2)

php5-intl添加到您安装的内容列表中。

看起来它不是核心PHP5版本的一部分,即使它是一个包含的选项,类似于php-apc现在是PHP的标准部分,尽管你必须明确地安装它。

答案 2 :(得分:-4)

尝试在php.ini取消注释扩展名intl“extension = php_intl.dll”,应删除“;”在“扩展”之前,然后重新启动服务器。