PHP money_format无效

Ste*_*teB 6 php

我在TurnkeyLinux使用Laravel 4并试图获得money_format以本地化方式显示货币.

money_format('%.2n', 1222002.09) 返回1222002.09.

在app/strart/global.php中,我App::setLocale(Session::get('locale', 'en'));使用Laravel的语言文件改变了语言,但对货币没有影响.

我发现localeconv();输出几乎为空的数组(只设置小数点)并且使用setLocale(LC_ALL, 'en_GB', 'en_GB');没有效果.

我使用的是PHP 5.4.4和Debian 3.2.57.

Ste*_*teB 7

得到它了!感谢Dmitry Bezik指出我正确的方向.

locale -a 回:

  • C
  • C.UTF-8
  • POSIX

缺少GB(或US)语言环境促使我做了另一个搜索,找到了我这个页面.

基本上我没有安装任何语言环境,所以我按照说明操作并通过执行以下操作安装了GB语言环境:

  1. 使用WinSCP打开/etc/locale.gen并向下滚动已注释掉的语言环境列表,直到找到en_GB.UTF-8 UTF-8并删除前导"#",(如果您的文件为空,只需添加一个条目即可).
  2. 然/usr/sbin/locale-gen如根,这使系统"生成的语言环境"(其只用了第二).
  3. 添加setLocale(LC_ALL, 'en_GB.utf8', 'en_GB');到我的刀片模板并刷新.

瞧!我现在明白了£1,222,002.09.
然后我setLocale在设置语言后将代码移动到我的app/start/global.php中,以便在每次请求时运行.