2013-02-21 12 views
10

Mój system to Ubuntu 12.04, PHP 5.3, i próbuję uruchomić podstawowe kod Intl takiego:PHP 5.3 Wydaje się, że brakuje Intl rozszerzenie domyślnie

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

i wyprowadza

PHP Fatal error: Call to undefined function collator_create() 

Czy rozszerzenie Intl nie miało być dołączone do PHP od wersji 5.3?

PHP został zainstalowany przez apt-get z tej linii poleceń (nie używam 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 

A oto co php -v produkuje:

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 
+0

Wywołanie 'ini_get ('disable_functions');' po prostu upewnij się, że nie jest wyłączone? – Danack

+0

@Danack 'ini_get ('disable_functions')' wyprowadza pusty ciąg znaków. –

Odpowiedz

25

Podczas instalacji należy podać --enable-intl, aby użyć dołączonej wersji pliku intl lub zainstalować ją za pośrednictwem PECL. Zobacz: http://www.php.net/manual/en/intl.installation.php

apt-get install php5-intl będzie również działać.

+1

Tak, działało 'apt-get install php5-intl'. Dzięki. –

+0

Powinieneś oznaczyć to jako odpowiedź, jeśli ci to pomoże. Dzięki. –

+0

jesteś moim bohaterem –

-4

Spróbuj w php.ini Odkomentuj rozszerzeniem intl "extension = php_intl.dll", powinno zostać usunięte ";" przed "rozszerzeniem", a następnie zrestartuj serwer.

+0

OP używa Ubuntu, to nie pomoże. –

2

Dodaj php5-intl do listy rzeczy, które instalujesz.

Wygląda na to, że nie jest to część podstawowego wydania PHP5, mimo że jest to opcja, którą można dołączyć, podobnie jak php-apc jest teraz standardową częścią PHP, chociaż trzeba ją jawnie zainstalować.

+0

Instalacja 'php5-intl' zrobiła to. Wielkie dzięki. –