Подтвердить что ты не робот

PHP 5.3, по-видимому, отсутствует 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()

Не было ли расширение Intl, которое должно быть связано с PHP с версии 5.3?

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
4b9b3361

Ответ 1

Вы указываете --enable-intl при установке для использования встроенной версии intl, или вы можете установить ее через PECL. См.: http://www.php.net/manual/en/intl.installation.php

apt-get install php5-intl также будет работать.

Ответ 2

Добавьте php5-intl в список вещей, которые вы устанавливаете.

Похоже, что это просто не часть основной версии PHP5, хотя она и есть опция для включения, аналогично тому, как php-apc теперь является стандартной частью PHP, хотя вы должны явно установить ее.

Ответ 3

Попробуйте в расширении php.ini uncomment intl "extension = php_intl.dll", необходимо удалить ";" перед "расширением", а затем перезапустите сервер.