Я использую этот точно такой же код целую вечность, и у меня никогда не было ни одной проблемы. Теперь он внезапно прекратил работать.
Я прочитал через Интернет об этой проблеме, и, видимо, вам нужен PHP 5.3 or higher
, и установлен PHP intl
плагин PHP intl
. У меня есть оба из них, но я все еще получаю Fatal error: Class 'NumberFormatter' not found
ошибка всякий раз, когда я использую следующую функцию:
function format_item($value) { $format = new \NumberFormatter('en_US', \NumberFormatter::CURRENCY); return $format->formatCurrency($value, 'AUD'); }
Кроме того, вот фрагмент файла моего php.ini
показывающий, что у меня установлен PHP intl
плагин PHP intl
:
[intl] intl.default_locale = fr_FR ; This directive allows you to produce PHP errors when some error ; happens within intl functions. The value is the level of the error produced. ; Default is 0, which does not produce any errors. intl.error_level = E_WARNING
У меня также есть extension=php_intl.dll
в моем php.ini
, и оно также находится в моем каталоге.
Почему я получаю эту ошибку?
Вам просто нужно включить это расширение в php.ini, раскомментируя эту строку: extension = ext / php_intl.dll
Дополнительные сведения см. В разделе «Включение внутреннего расширения».
Все что тебе нужно это:
apt-get install php7.0-intl
Не нужно изменять php.ini или делать что-либо еще. (Протестировано на PHP 7 на Ubuntu 16.04).
Самый проголосовавший ответ здесь – вы раскомментируете .dll, который никогда ничего не решит, если вы не на сервере Windows!
Я использую версию PHP 5.5 и получил ту же ошибку в Ubuntu Machine. Я установил пакет php5-Intl и перезапустил мой сервер apache. Это решило проблему.
Для PHP5
sudo apt-get install php5-intl
Для PHP7
sudo apt-get install php7.0-intl
Для Mac OS X используйте следующую команду для PHP5.6
brew install php56-intl
Для разных ОС выйдите на эту страницу: http://php.net/manual/en/intl.installation.php
Чтобы проверить успешную установку, запустите команду php -m. Это должно показать пакет intl в списке.
Если вы используете XAMPP в Mac OS X, php-intl иногда создает различные проблемы. Вы можете выполнить описанные здесь шаги отладки
Если вы столкнулись с невозможностью загрузить динамическую библиотеку '/usr/lib/php/extensions/no-debug-non-zts-20121212/intl.so' , выполните действия, указанные здесь.
Если вы используете Google App Engine, просто добавьте:
extension = "intl.so"
к файлу php.ini вашего приложения.
На Max OS X с PHP, установленным с Homebrew , мы можем:
Мы можем проверить, установлен ли intl
модуль:
$ php -m
Мы можем проверить информацию о модуле:
$ brew info php72-intl
И установите его с помощью:
$ brew install php72-intl
Добавьте свой каталог PHP в переменную окружения Path. (C: \ Program Files \ wamp \ bin \ php \ phpX.XXX.XXX для wamp)
Это сработало для меня!
Кажется, это какая-то действительно странная проблема, и я как-то ее исправил, выполнив следующее:
В этом уроке я обновил свой PHP в Wamp. Я также обновил свой часовой пояс в php.ini
Когда я обновил его, он не сработал, поэтому я вернулся к своей предыдущей версии PHP, а voilà – это сработало.
Я понятия не имею, как это решило проблему, однако это сработало для меня.
Изменение в php-расширениях не сработало для меня, поэтому я обновил свою версию php с php 5.6.25 до 7.0.10, и это сработало
я мог бы просто сделать следующее, и он будет работать идеально.
$numbers = 123456789; $toThousands = number_format($numbers);
результаты будут: 123 456 789, func «number_format» уже встроен в функцию.