php - 定义跨平台money_format函数(Linux和Windows)

我读到 money_format 在 Windows 和某些 Linux 发行版(即 BSD 4.11 变体)上不可用。但我想使用普通函数编写跨平台库,如果可用并使用这个 workaround如果没有,那么我的库将能够在每个基于 PHP 的 Web 服务器上运行。

是否有任何简单的解决方案来检查内置功能是否可用,如果不包含上面的解决方案?

最佳答案

仅当系统具有 strfmon 功能时才定义函数 money_format()。例如,Windows 没有,因此 money_format() 在 Windows 中是未定义的。

所以你可以使用这个php代码:

setlocale(LC_ALL, ''); // Locale will be different on each system.
$amount = 1000000.97;
$locale = localeconv();
echo $locale['currency_symbol'], number_format($amount, 2, $locale['decimal_point'], $locale['thousands_sep']);

使用它,您可以编写真正可移植的代码,而不是依赖操作系统功能。在 PHP 中使用 money_format 函数而不是扩展是非常愚蠢的。我不明白您为什么要在编程语言的不同操作系统之间创建这样的不一致

https://stackoverflow.com/questions/9974704/

相关文章:

regex - 正则表达式中的 C# 字符串格式占位符

c# - 在 C# 中格式化大数

javascript - 基于 JavaScript/jQuery 中的格式字符串格式化数字

wpf - 如何在 wpf 中计算 FormattedText 或 GlyphRun 的 'Size

sql - 在 SQL 中显示带有加号 (+) 的肯定结果

java - 通过 HotKey 在 Eclipse 中防止代码格式化

css - Google Webfonts 在 Firefox、Chrome 和 Opera 中的呈

c# - JSON 序列化输出具有 C# 转义格式

python - 使用 Python 在 OpenOffice/Microsoft Word 中格式

c++ - 使用 boost::date_time 库以毫秒为单位格式化时间