首頁  >  文章  >  後端開發  >  如何透過貨幣符號"CURRENCY" 取得對應的 LOCALE 資訊。

如何透過貨幣符號"CURRENCY" 取得對應的 LOCALE 資訊。

WBOY
WBOY原創
2016-08-25 10:37:171421瀏覽

出現此問題的原因如下:

有國際儲值業務,資料如下:

<code class="shell">MONEY:₱48.00 CURRENCY:PHP</code>

其中money 為儲值金額(目前locale的金額), currency為貨幣資訊與 money對應。

為了統計記帳方便均想把money ₱48.00 轉換成肉眼可是辨識的浮點數資訊。

於是藉助PHP官方intl擴充進行以下程式碼開發:

<code class="php">$locale = ?
$money  = '₱48.00';
$currency = 'PHP';
$fmt    = new NumberFormatter($locale, NumberFormatter::CURRENCY);
$__     = $fmt->parseCurrency($money, $currency);
var_dump($__)
//$__ === false为转换失败,若为float 则转换成功</code>

不料卻遇見locale資訊無法取得的困難,再藉助intllocale來取得如下:

<code class="php">$locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
var_dump($locale);</code>

但是accept_language不是正常的locale資訊

所以是否有辦法透過 currency 取得到 locale

回覆內容:

出現此問題的原因如下:

有國際儲值業務,資料如下:

<code class="shell">MONEY:₱48.00 CURRENCY:PHP</code>

其中money 為儲值金額(目前locale的金額), currency為貨幣資訊與 money對應。

為了統計記帳方便均想把money ₱48.00 轉換成肉眼可是辨識的浮點數資訊。

於是藉助PHP官方intl擴充進行以下程式碼開發:

<code class="php">$locale = ?
$money  = '₱48.00';
$currency = 'PHP';
$fmt    = new NumberFormatter($locale, NumberFormatter::CURRENCY);
$__     = $fmt->parseCurrency($money, $currency);
var_dump($__)
//$__ === false为转换失败,若为float 则转换成功</code>

不料卻遇見locale資訊無法取得的困難,再藉助intllocale來取得如下:

<code class="php">$locale = Locale::acceptFromHttp($_SERVER['HTTP_ACCEPT_LANGUAGE']);
var_dump($locale);</code>

但是accept_language不是正常的locale資訊

所以是否有辦法透過 currency 取得到 locale

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn