2013-02-21 81 views
10
缺少國際機場延伸

我的系統是Ubuntu的12.04,PHP 5.3,我試圖運行一些基本的國際代碼:PHP 5.3,似乎默認

<?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版本開始將PHP擴展爲Intl擴展?

PHP經apt-get安裝使用此命令行(我不使用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 
+0

調用'ini_get('disable_functions');'只是爲了確保它沒有被禁用? – Danack 2013-02-21 13:20:08

+0

@Danack'ini_get('disable_functions')'輸出一個空字符串。 – 2013-02-21 13:22:36

回答

25

您在安裝時使用intl的捆綁版本時指定了--enable-intl,或者您可以通過PECL進行安裝。參見:http://www.php.net/manual/en/intl.installation.php

apt-get install php5-intl也可以工作。

+1

是的,'apt-get install php5-intl'確實有效。謝謝。 – 2013-02-21 13:35:43

+0

如果它對你有幫助,你應該將其標記爲答案。謝謝。 – 2013-02-21 19:23:41

+0

你是我的英雄 – 2015-07-18 06:11:53

-4

嘗試在php.ini中取消註釋擴展intl「extension = php_intl.dll」,應該被刪除「;」之前「擴展」,然後重新啓動服務器。

+0

OP使用的是Ubuntu,這對此沒有幫助。 – 2013-05-09 11:56:40

2

php5-intl添加到您安裝的東西列表中。

看起來它並不是核心PHP5版本的一部分,儘管它是一個包含的選項,類似於php-apc現在是PHP的標準部分,儘管您必須明確地安裝它。

+0

安裝'php5-intl'做到了。謝謝一堆。 – 2013-02-21 13:33:40