php - numeros - Error grave: no se encontró la clase ''NumberFormatter''
formato#numero php (10)
He estado utilizando exactamente el mismo código durante años y nunca he tenido un solo problema. Ahora, de repente, ha dejado de funcionar.
He leído a través de Internet sobre este problema, y al parecer necesita PHP 5.3 or higher
instalado y el complemento de PHP intl
instalado. Tengo ambos de estos, pero todavía recibo un Fatal error: Class ''NumberFormatter'' not found
error cada vez que uso la siguiente función:
function format_item($value)
{
$format = new /NumberFormatter(''en_US'', /NumberFormatter::CURRENCY);
return $format->formatCurrency($value, ''AUD'');
}
Además, aquí hay un fragmento de mi archivo php.ini
que muestra que tengo instalado el complemento 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
También tengo la extension=php_intl.dll
en mi php.ini
, y también está en mi directorio.
¿Por qué estoy recibiendo este error?
Agregue su directorio PHP en la variable de entorno Path. (C: / Archivos de programa / wamp / bin / php / phpX.XXX.XXX para wamp)
¡Esto ha funcionado para mí!
El cambio en las extensiones de php no me funcionó, así que actualicé mi versión de php 5.6.25 a 7.0.10 y funcionó
Esto parece ser un problema realmente extraño, y de alguna manera lo arreglé haciendo lo siguiente:
Actualicé mi PHP en Wamp a través de this tutorial. También actualicé mi zona horaria en php.ini
Cuando actualicé no funcionó, así que volví a mi versión anterior de PHP y voilà, funcionó.
No tengo la menor idea de cómo esto resolvió el problema, sin embargo funcionó para mí.
Estoy ejecutando en ubuntu-16.04 y estoy usando php7, tuve el mismo problema, es debido a la extensión php_intl
la forma en que lo arreglé
Primero verifique que la extensión esté instalada o no en su servidor, use el siguiente comando para verificarlo
php -m | grep intl
Si no hay resultados, debes instalarlo.
Si no está instalado, instalémoslo.
sudo apt-get update sudo apt-get install php-intl
Finalmente necesita reiniciar su servidor web después de instalar
Error de clase ''NumberFormatter'' no encontrado en un programa PHP simple
Estoy usando la versión PHP 5.5 y obtuve el mismo error en Ubuntu Machine. He instalado el paquete php5-Intl y reinicié mi servidor apache. Esto resolvió el problema.
Para PHP5
sudo apt-get install php5-intl
Para PHP7
sudo apt-get install php7.0-intl
Para Mac OS X, use el siguiente comando para PHP5.6
brew install php56-intl
Para diferentes sistemas operativos, visite esta página: http://php.net/manual/en/intl.installation.php
Para verificar la correcta instalación, ejecute el comando php -m. Esto debería mostrar el paquete intl en la lista.
Si está utilizando XAMPP en Mac OS X, php-intl a veces creará problemas diferentes. Puedes seguir los pasos de depuración mencionados here
Si está enfrentando No se puede cargar la biblioteca dinámica ''/usr/lib/php/extensions/no-debug-non-zts-20121212/intl.so'' error, siga los pasos que se mencionan here
Podría hacer lo siguiente y funcionará perfectamente.
$numbers = 123456789;
$toThousands = number_format($numbers);
los resultados serán: 123,456,789, la función "number_format" ya está integrada en la función.
Si está utilizando Google App Engine, simplemente añada:
extension = "intl.so"
al archivo php.ini de su aplicación.
Solo necesita habilitar esta extensión en php.ini descomentando esta línea: extension = ext / php_intl.dll
Para más detalles visite, Habilitar extensión intl.
Todo lo que necesitas es:
apt-get install php7.0-intl
No hay necesidad de cambiar php.ini o hacer nada más. (Probado en PHP 7 en Ubuntu 16.04).
¡La respuesta más votada aquí lo tiene sin comentar un .dll que nunca resolverá nada a menos que esté en un servidor de Windows!
anticuado
En Max OS X con PHP instalado con Homebrew , podemos:
Podemos comprobar si el módulo intl
instalado:
$ php -m
Podemos consultar la información del módulo:
$ brew info php72-intl
E instálalo con:
$ brew install php72-intl