'en_EN'
基本上第一部分是语言,第二部分是地区
'en_EN' - 英语,英国
'en_US' - 英语,美国
您可以在此处查找“en_EN”之类的语言标签
https://datahub.io/core/language-codes
参见“ietf-language-tags”
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
NumberFormatter::parse -- numfmt_parse — 解析数字
面向对象风格
$string
, int $type
= NumberFormatter::TYPE_DOUBLE, int &$offset
= null
): int|float|false过程式风格
$formatter
,$string
,$type
= NumberFormatter::TYPE_DOUBLE,&$offset
= null
使用当前格式化程序规则将字符串解析为数字。
formatter
NumberFormatter 对象。
string
要解析数字的字符串。
type
要使用的 格式化类型。默认情况下,使用 NumberFormatter::TYPE_DOUBLE
。请注意,不支持 NumberFormatter::TYPE_CURRENCY
;请改用 NumberFormatter::parseCurrency()。
offset
字符串中开始解析的偏移量。返回时,此值将保存解析结束的偏移量。
解析后的数字的值,或者在错误时为 false
。
示例 #1 numfmt_parse() 示例
<?php
$fmt = numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo numfmt_parse($fmt, $num)."\n";
echo numfmt_parse($fmt, $num, NumberFormatter::TYPE_INT32)."\n";
?>
示例 #2 OO 示例
<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$num = "1.234.567,891";
echo $fmt->parse($num)."\n";
echo $fmt->parse($num, NumberFormatter::TYPE_INT32)."\n";
?>
上面的例子将输出
1234567.891 1234567
'en_EN'
基本上第一部分是语言,第二部分是地区
'en_EN' - 英语,英国
'en_US' - 英语,美国
您可以在此处查找“en_EN”之类的语言标签
https://datahub.io/core/language-codes
参见“ietf-language-tags”
值得注意的是,此函数的预期行为可能会根据您的 ICU 版本而改变。
在 ICU 4.4.2(Ubuntu 10.* 与 PHP 5.3.5 的标准)中
使用区域设置“en”,输入 100,1 返回 1001
在 ICU 4.8.1(Ubuntu 12.* 与 PHP 5.3.10 的标准)中
使用区域设置“en”,输入 100,1 返回“false”
请务必注意 phpinfo() 中的 ICU 版本,以确保您获得预期的输出。
要解析英语,请使用此格式:'en_EN'。我不得不猜。我不知道在哪里可以找到这些代码。
<?php
echo "<pre>";
$fmt = numfmt_create( 'en_EN', NumberFormatter::DECIMAL );
$num = "1,234,567.891";
echo numfmt_parse($fmt, $num)."\n";
echo numfmt_parse($fmt, $num, NumberFormatter::TYPE_INT32)."\n";
echo "</pre>";
?>
如果这不起作用,我只能说它不应该起作用,因为在一个代码中重复两次代码“en 和 EN”没有任何意义。没有意义的东西很难猜测。我也没有找到包含这些代码的页面。我想文档必然不完整,因为它太庞大了。文档有其自身的语言和语法,但没有关于理解文档的教程。