문제

My system is Ubuntu 12.04, PHP 5.3, and I'm trying to run some basic Intl code like this:

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

and it outputs

PHP Fatal error:  Call to undefined function collator_create()

Wasn't Intl extension supposed to be bundled with PHP since version 5.3?

PHP was installed via apt-get with this command line (I don't use 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

And here is what php -v produces:

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
도움이 되었습니까?

해결책

You have specify --enable-intl when installing to use the bundled version of intl, or you can install it via PECL. See: http://www.php.net/manual/en/intl.installation.php

apt-get install php5-intl will also work.

다른 팁

Add php5-intl to the list of things you install.

It looks like it's just not part of the core PHP5 release, even though it is an option to be included, similar to how php-apc is now a standard part of PHP, though you have to explicitly install it.

Try in php.ini uncomment extension intl "extension = php_intl.dll", should be removed ";" before "extension", and then restart the server.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top