2011-07-13 56 views
2

目前我正在使用php,mysql和jquery寫一個簡短的調查表(html表格)。我希望用戶從下拉列表中選擇他們的國家,然後獲得正確的貨幣(服務器端),以便日後可以詢問指向正確貨幣的東西。表單:讓用戶選擇他們的國家(下拉)並獲得貨幣(php)

我真的不明白如何實現這一目標。我知道我可以找到一個最新的國家名單:http://www.iso.org/iso/country_codes/iso_3166_code_lists.htm 我可以做成一個PHP數組,但然後呢?

http://snipplr.com/view/36437/php-country-code--to-html-currency-symbol-list/ 看起來不錯的代碼,但我喜歡使用最新的東西。

對於我來說,使用mysql數據庫沒有問題,但是安裝插件/擴展(託管不允許它)是個問題。

有人知道一個很好的(也許很容易)實現這個目標嗎?

回答

0

您可以使用CURL或file_get_contents()從URL中讀取內容並始終更新。

+0

也許這可以爲http://www.iso.org/iso/list-en1-semic-3.txt工作?會好的 – Rob

0

不回答你的問題,而是:

隨着PHP5.3的intl成了默認。它包含NumberFormatter::formatCurrency(),它可以完成你的鏈接country_currency()試圖做的事情 - 只有正確。如果PHP5.3是一個可行的最低要求(看到5.2已被棄用且不再受支持) - 使用intl函數。

With Locale::acceptFromHttp()您可以檢查瀏覽器的請求標題以預先選擇最匹配的區域設置。

您的ISO國家代碼列表在某種程度上仍應該對手冊<select>有幫助。但請記住,這不太準確:德國翻譯爲de,可能不夠具體,請看de_AT,de_CH,de_DE。他們每個人都可能以不同的方式呈現貨幣€1,123.231 123,23 €等等。不過,您仍然需要知道您正在處理的貨幣。因此,您需要ISO國家/地區代碼和國家/地區代碼的列表。

0

PHP Intl的NumberFormatter接受英語作爲任何國家的語言。所以只需使用en_加上你的國家代碼。

echo (new NumberFormatter('en_DE', NumberFormatter::CURRENCY)) 
    ->getTextAttribute(NumberFormatter::CURRENCY_CODE); // EUR 

echo (new NumberFormatter('en_RS', NumberFormatter::CURRENCY)) 
    ->getTextAttribute(NumberFormatter::CURRENCY_CODE); // RSD