PHP字符串格式化函数
localeconv:数值的格式化信息,根据setlocale函数设置的当前地区,返回一个包含本地化数字和货币格式化信息的关联数组。
setlocale:设置地区信息,第一个参数指定了受区域设置影响的函数类别常量,第二个参数指定将地区信息设置为哪个国家/地区,可以是一个或多个字符串或数组。如果地区信息是null或者空字符串,则会将其设置为函数类别常量中同名的环境变量或者根据LANG进行设置;如果地区信息为0,则地区设置不受影响,只返回当前设置;如果地区信息是数组,则会尝试每个数组元素,直到找到合法的语言或地区代码为止,如果某个地区在不同的系统上拥有不同的名称,这一点很有用。如果区域设置功能没有实现则返回false,可能是指定的区域不存在或者类别名称无效。如果类名名称无效会产生E_DEPRECATED警告。
money_format:将数字格式化成货币字符串,接受两个参数,第一个是格式字符串,第二个是要转换格式的数字,如果传入的不是数字将返回null并产生E_WARING错误。具有strfmon的系统才有此函数,所以windows上是没有此函数的,此函数受locale中LC_MONETARY影响,所以在使用前要先用setlocale来设置区域。
nl_langinfo:返回具体的本地信息。与localeconv不同的是localeconv只返回指定的元素信息。接受一个参数为要获取其信息的元素的整型值或元素的常量名。返回指定元素的本地信息或者元素不合法时返回false,可用常量表见nl_langinfo常量表。
number_format:以千位分隔符方式格式化一个数字。有两种调用方法,第一种是接受两个参数,第一个是必需的要转换的数字,第二个是可选的要保留的小数符号后的位数,默认为0,以此方式调用时,默认小数符号为“.”,千位符号为“,”。第二种是接受四个参数,前两个参数与第一种调用方式相同,第三个参数为小数点符号,第四个参数为千位分隔符号,四个参数都是必需的。
<?php
if (false !== setlocale(LC_ALL, 'zh_CN', 'en_US', 'en_GB', 'ge')) {
var_dump(localeconv());
}
echo money_format('%=a#8.2n', 1234.567) . "\n";
echo money_format('%=b^#8.2i', 1234.567) . "\n";
echo money_format('%=c!#8.2i', 1234.567) . "\n";
echo money_format('%=d#8.2i%%', 1234.567) . "\n";
echo money_format('%=e-#8.2n%%', 1234.567) . "\n";
echo money_format('%=f+#8.2i', -1234.567) . "\n";
echo money_format('%=g(#8.2i', -1234.567) . "\n";
echo nl_langinfo(ABDAY_1)."\n";
echo nl_langinfo(DAY_1)."\n";
echo number_format(123.456,2)."\n";
?>