Intereting Posts
возможно ли добавлять свойства к классу в PHP во время выполнения? array_udiff не работает как ожидалось PHPUnit: ожидание вызова метода с массивом в качестве аргумента Функция PHP для проверки времени между заданным диапазоном? php 301 перенаправляет фактическое выполнение перенаправления 302 Объекты PDO в классах Как проверить уникальность коллекции «многие-ко-многим»? как выполнять некоторую функцию в определенное время неявно Создание корзины с несколькими элементами и кнопка PayPal в PHP Канонический URL-адрес связан с Facebook, а не с реальным URL-адресом. Динамические теги OpenGraph Невозможно выполнить команды мастеров Laravel Laravel 4 на встроенном веб-сервере PHP (CGI) вместо Apache onbeforeprint () и onafterprint () эквивалент для браузеров без IE Параллельно с «взрывом» PHP в C: разделите char * на char *, используя разделитель Получение token_not_provided при использовании заголовка авторизации с JWT Laravel

Неустранимая ошибка: Class 'NumberFormatter' не найден

Я использую этот точно такой же код целую вечность, и у меня никогда не было ни одной проблемы. Теперь он внезапно прекратил работать.

Я прочитал через Интернет об этой проблеме, и, видимо, вам нужен 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 вашего приложения.

https://cloud.google.com/appengine/docs/php/runtime

На 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» уже встроен в функцию.