В настоящее время я пишу короткий опрос (html-форму) с использованием php, mysql и jquery. Я хочу, чтобы пользователь выбирал свою страну из раскрывающегося списка, а затем получал нужную валюту (на стороне сервера), поэтому позже я могу спросить, что касается соответствующей валюты.
У меня действительно нет четкого представления о том, как этого добиться. Я знаю, что могу найти обновленный список стран: 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, но проблема заключается в установке плагинов / расширений (хостинг не позволит этого).
Кто-нибудь знает хороший (и, возможно, простой) способ достичь этого?
Вы можете использовать CURL или file_get_contents () для чтения содержимого из URL-адреса и всегда обновляется.
Не отвечая на ваш вопрос, но:
Начиная с PHP5.3, intl стал дефолтом. Он содержит NumberFormatter :: formatCurrency (), который делает то, что пытается связать country_currency (), – только правильно. Если PHP5.3 является жизнеспособным минимальным требованием (см., Что 5.2 устарел и больше не поддерживается), используйте функции intl.
В Locale :: acceptFromHttp () вы можете проверить заголовки запросов браузера, чтобы выбрать наилучший соответствующий языковой стандарт.
Список ISO CountryCode все равно будет полезен для ручного <select>
на определенном уровне. Но имейте в виду, что это не совсем точно: Германия переводит на de
, что может быть недостаточно конкретным, если вы видите de_AT
, de_CH
, de_DE
. Каждый из них может представлять Валюту по-разному. €1,123.23
, 1 123,23 €
и так далее. Однако вам все равно нужно знать, какую валюту вы обрабатываете. Таким образом, вам нужен список кодов стран ISO и карта кода страны в валюте.
PHP Intl's NumberFormatter принимает английский как язык для любой страны. Поэтому просто используйте en_
plus код страны.
echo (new NumberFormatter('en_DE', NumberFormatter::CURRENCY)) ->getTextAttribute(NumberFormatter::CURRENCY_CODE); // EUR echo (new NumberFormatter('en_RS', NumberFormatter::CURRENCY)) ->getTextAttribute(NumberFormatter::CURRENCY_CODE); // RSD