Класс 'NumberFormatter' не нашел ошибку в простой программе PHP

У меня есть простая программа PHP, но я сталкиваюсь с этой ошибкой:

Класс «NumberFormatter» не найден

Я исследовал подобные проблемы в Stackoverflow, но, честно говоря, никто не дал конкретного решения. Другие предлагают обновить версию PHP, другие раскомментируют определенную строку в файле php.ini, и ни один из них не работал у меня.

Ниже приведен мой код: я даже использовал предложенное решение с https://bugs.php.net/bug.php?id=68410, но он по-прежнему не работает.

<!DOCTYPE html>
<html>
<body>

<?php
function writeMsg(){

$f = new \NumberFormatter("en", \NumberFormatter::SPELLOUT);    

echo $f->format(1432);
}
writeMsg();
?>  

</body>
</html>

person TwoThumbSticks    schedule 23.11.2015    source источник


Ответы (3)


Две вещи

  1. Вам нужен PHP 5.3 или выше.

  2. Возможно, у вас не установлено расширение php-intl.

Для проверки запустите в терминале:

php -m | grep intl

Если нет результатов, вам нужно установить его, что зависит от вашей системы и версии PHP.

Например, на Mac вы можете установить его для PHP 5.6, запустив:

brew install php56-intl

Убедитесь, что вы перезагрузили веб-сервер после установки!

РЕДАКТИРОВАТЬ для XAMPP:

Если вы используете XAMPP, то он, вероятно, установлен, но не включен.

  1. Найдите свой файл php.ini -- путь к вашему xampp/php/php.ini -- и откройте его в редакторе.

  2. Найдите php_intl. Если вы найдете ;extension=php_intl.dll, просто удалите точку с запятой в начале строки — это раскомментирует ее.

  3. Перезапустите XAMPP!

person djt    schedule 23.11.2015
comment
Я новичок в php и просто использую версию xampp 3.2.1 PHP 5.5.27. Как я могу взломать расширение, не используя терминал? - person TwoThumbSticks; 23.11.2015
comment
В этом случае он может быть установлен, но не включен. Вам нужно будет найти файл php.ini. Это, вероятно, в вашем направлении приложения XAMPP/php/php.ini. Откройте этот файл в редакторе и найдите php_intl. Если вы найдете ;extension=php_intl.dll, просто удалите точку с запятой в начале строки — это раскомментирует ее. Затем перезапустите XAMPP - person djt; 23.11.2015
comment
Спасибо, что решили мою проблему, приму ответ, но у меня есть просьба. Пожалуйста, отредактируйте свой ответ, чтобы включить подход xampp, чтобы помочь другим, потому что здесь, в stackoverflow, есть похожие вопросы, но принятые ответы не являются правильными. - person TwoThumbSticks; 23.11.2015
comment
@TwoThumbSticks рад, что это сработало. я обновил свой ответ - person djt; 23.11.2015

Как уже говорилось, у вас должна быть версия PHP 5 >= 5.3.0, и если вы уже раскомментировали ;extension=php_intl.dll из файла php.ini и все еще не работает... попробуйте взглянуть на этот ответ. это действительно решает мою проблему.

расширение intl php_intl.dll с wamp

person curiosity    schedule 31.10.2018

Вам нужно использовать

use \NumberFormatter;

Приведенный выше код

person Nazmul Haque    schedule 13.03.2021