我一直在使用相同的代码,从来没有遇到过任何问题。现在它突然停止工作了。
我在网上看到了这个问题,显然你需要安装PHP 5.3 or higher
,并安装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
插件:
[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
,它也在我的目录。
为什么我得到这个错误?
所有你需要的是:
apt-get install php7.0-intl
不需要更改php.ini或做任何其他事情。(在Ubuntu 16.04和PHP 7上测试)。
这里投票最多的答案是你取消注释一个。dll,它永远不会解决任何问题,除非你是在Windows服务器上!
您只需要在php.ini
中通过取消注释来启用此扩展:
extension=ext/php_intl.dll
有关更多详细信息,请访问,启用intl扩展
这适用于我(Ubuntu 18.10, PHP 7.2.15)
sudo apt-get install php-intl
service apache2 restart
我使用的是PHP 5.5版本,在Ubuntu Machine中得到了同样的错误。我已经安装了php5-Intl包并重新启动了apache服务器。问题解决
PHP5的sudo apt-get install php5-intl
For php
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包。
如果在Mac OS X中使用XAMPP, php-intl有时会产生不同的问题。您可以遵循这里提到的调试步骤
如果你面对的是无法加载动态库'/usr/lib/php/extensions/no-debug-non-zts-20121212/intl。so'错误,按照这里提到的步骤
这意味着您的PHP intl
包没有安装和/或没有启用。
确保安装了php7.2-intl
(或检查是否已安装)。在我的例子中,我使用的是PHP 7.2,但是版本可能会改变。
sudo apt install php7.2-intl
步骤2 安装成功后,转到php.ini
并通过删除注释来启用该扩展,如下所示
extension=intl
步骤3 Retstart apache
sudo service apache2 restart
我正在运行ubuntu-16.04和我正在使用php7,我有同样的问题,这是因为php_intl扩展名
我修复它的方式-
-
首先检查扩展是否安装在您的服务器上,使用下面的命令来检查它
php -m | grep intl
-
如果没有结果,你必须安装它
-
如果没有安装,让我们安装它
sudo apt-get update sudo apt-get install php-intl
-
最后你需要重新启动你的web服务器后,你安装
类& # 39;numberformatter # 39;简单PHP程序
https://www.howtoinstall.co/en/ubuntu/xenial/php-intl
额外的,如果有人来这里和Laravel使用php artisan serve
和面临这个问题,并且已经取消注释
extension=intl
在php.ini中,不要忘记重启你的Laravel开发服务器。
如果您使用的是Google App Engine,只需添加:
extension = "intl.so"
到应用程序的php.ini文件
https://cloud.google.com/appengine/docs/php/runtime
实际上如果你使用的是xampp和php>7 . *
编辑;extension=intl
到extension=intl
行,重新启动mysql服务,你就可以开始了。
的
在Max OS X与PHP安装了Homebrew,我们可以:
我们可以检查intl
模块是否安装:
$ php -m
我们可以检查模块信息:
$ brew info php72-intl
和安装:
$ brew install php72-intl
我从docker image php:7.4-fpm内部得到了相同的错误,因此我将以下行添加到Dockerfile
RUN apt-get install -y libicu-dev # required dependency
RUN docker-php-ext install intl
在Path环境变量中添加PHP目录。(C: ' Program Files ' wamp ' bin ' php ' phpX.XXX。XXX表示wamp)
它对我有效!
(Ubuntu 20.04.3 LTS, PHP版本7.4.30)
sudo apt-get install php7.4-intl
sudo service nginx restart
这似乎是一些非常奇怪的问题,我通过做以下事情来解决它:
我通过本教程升级了我的PHP。我还在php.ini
中更新了我的时区,当我升级时它不起作用,所以我恢复到我以前的PHP版本,并且volilo -它工作了。
我完全不知道这是如何解决问题的,但它对我来说很有效。
php扩展的变化不适合我,所以我把我的php版本从php 5.6.25更新到7.0.10,它工作
解决方案为所有Windows和Mac。
大多数时候这个扩展是不存在的,你只需要在php.ini中通过取消注释这一行来启用这个扩展,
extension=intl
如果该行不存在,则在第一行下面的任何位置添加该行
extension=intl
extension=ext/php_intl.dll
为了得到更好的结果,也可以添加below as like,因为在某些情况下,使用above 1不能只使用below 1,
extension=php_intl.dll
然后是这样的
extension=ext/php_intl.dll
extension=php_intl.dll
extension=intl
之后,大多数情况下不要忘记重新启动服务器,在我的情况下,我使用xampp,否则更改不能正常工作。
在CentOS 8:
sudo dnf install php-intl
同样的问题发生在我身上,我已经配置了 PHP .ini并启用了intl扩展,错误持续存在,我通过在Windows
中系统路径的环境变量中添加PHP来解决它首先,停止XAMPP/Wamp,然后从您的 XAMPP ' PHP ' PHP .ini中删除开始分号(;
)以下代码。
;extension=intl
然后重新启动XAMPP/Wamp。
注意:对于Windows,您可以在C:'xampp'php'php.ini-Folder (Windows)或etc-Folder(在xampp-Folder内)中找到该文件。
非常重要的提示:"关闭命令提示符并重新启动"(这是非常重要的,因为如果您没有重新启动命令提示符,那么更改将不会反映)
在使用heroku/php
的情况下,您应该将此添加到composer.json
:
"require": {
...
"ext-intl": "*"
}
对于那些在这里使用docker并寻找解决方案的人,我只是将这行添加到我的Dockerfile:
RUN apk add --no-cache icu-dev && docker-php-ext-install intl
我正在从php:8.0.20RC1-fpm-alpine3.16获取图像
希望这对某人有帮助
我可以做下面的事情,它会完美地工作。
$numbers = 123456789;
$toThousands = number_format($numbers);
结果将是:123,456,789,函数"number_format"已经在函数中构建。