26 ноября 2009, 23:59 более 9-и месяцев назад
Сколько баблишка?
| Валюта в международном формате | Возможные вариации | Результат |
|---|---|---|
| RUR | рублей, руб., RUR, RUB, rubles, р. | рублей |
| UAH | гривен, гр. UAH, грн., | гривен |
| EUR | евро, евр., просто значок € перед или после цены, EUR, Euro, Evro (обрабатываем опечатки) | евро |
| USD | значок $, USD, долларов, у.е., зелёных :), dollar*, долар (опечатки) | долларов США |
/************************************************************* * Функция определения валюты из строк вида "1000 рублей", "10 USD" и т. п. * На входе строка, на выходе код валюты (RUR, USD, UAH, EUR) * или false, если не удалось определить. * Также false выйдет если определилось несколько валют в строке. * Автор функции - BrokenBrake.biz *************************************************************/ function currencer($str) { $pattern['RUR'] = "/[^гГuU][рРRr][Уу\.uU]/u"; $pattern['USD'] = "/\\\$|[UuдД][sSnNоО]|[уУ][\.\s]*[еЕ]|[зЗ][еЕ]|[бБ][аА][кК][сС]/u"; $pattern['EUR'] = "/€|[eEЕе][UuВвvV]/u"; $pattern['UAH'] = "/[гГUu][AaрР]/u"; foreach ($pattern as $key => $val) { if (preg_match($val, $str)) $currency[] = $key; } if (isset($currency[1]) OR !isset($currency[0]))return false; else return $currency[0]; } // echo currencer('1000 зелёных')