1. Go to this page and download the library: Download mistralys/currency-parser library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
mistralys / currency-parser example snippets
use function Mistralys\CurrencyParser\findPrices;
$subject = <<<EOT
Base price: $1,000.00
Your price: $860.00
EOT;
$prices = findPrices($subject, 'USD');
foreach($prices as $price)
{
// do something with them
}
use function Mistralys\CurrencyParser\parsePrice;
echo parsePrice('$1000.00')->formatText();
use function Mistralys\CurrencyParser\parsePrice;
echo parsePrice('1000.00 €', 'EUR_DE')->formatText();
use Mistralys\CurrencyParser\PriceFilter;
$subject = <<<'EOT'
Starting price: 1000.00 $
Special price: € 860.00
EOT;
echo PriceFilter::createForLocales('USD', 'EUR')
->filterString($subject);
use Mistralys\CurrencyParser\PriceFilter;
$subject = <<<'EOT'
Prix de départ: EUR 1000.00
Prix spécial: EUR 860.00
EOT;
echo PriceFilter::createForLocales('EUR_FR')
->filterString($subject);
use Mistralys\CurrencyParser\PriceFilter;
$subject = <<<'EOT'
Starting price: 1000.00 $
Special price: 860.00 $
EOT;
echo PriceFilter::createForLocales('USD')
->setNonBreakingSpaceHTML()
->filterString($subject)
use Mistralys\CurrencyParser\PriceFilter;
$subject = <<<'EOT'
With name: USD 1000
With symbol: $ 1000
EOT;
echo PriceFilter::createForLocales('USD')
->setSymbolModeSymbol()
->filterString($subject);
use Mistralys\CurrencyParser\PriceFilter;
$subject = <<<'EOT'
With name: USD 1000
With symbol: $ 1000
EOT;
echo PriceFilter::createForLocales('USD')
->setSymbolModeSymbol()
->filterString($subject);
use Mistralys\CurrencyParser\PriceFilter;
$subject = <<<'EOT'
With name: EUR 1000
With symbol: € 1000
EOT;
echo PriceFilter::createForLocales('EUR_FR')
->setSymbolModePreferred()
->filterString($subject);
use Mistralys\CurrencyParser\PriceFormatter;
use function Mistralys\CurrencyParser\parsePrice;
echo PriceFormatter::createLocale('USD')
->format(parsePrice('$ 1000'))
use Mistralys\CurrencyParser\PriceFormatter;
use function Mistralys\CurrencyParser\parsePrice;
echo PriceFormatter::createLocale('USD')
->setNonBreakingSpaceHTML()
->setSymbolModeName()
->format(parsePrice('$ 1000'))
use Mistralys\CurrencyParser\PriceFormatter;
use function Mistralys\CurrencyParser\parsePrice;
$formatter = PriceFormatter::createCustom()
->setDecimalSeparator('[DECIMAL]')
->setThousandsSeparator('[THOUSAND]')
->setArithmeticSeparator('[ARITHMETIC]')
->setNonBreakingSpace('[SPACE]')
->setSymbolPosition(PriceFormatter::SYMBOL_POSITION_END)
->setSymbolSpaceAtTheEnd(PriceFormatter::SPACE_BEFORE);
echo $formatter->formatPrice(parsePrice('$ -1000.00'));
use Mistralys\CurrencyParser\PriceFormatter;
$formatter = PriceFormatter::createCustom()
->configureWithLocale(\Mistralys\CurrencyParser\currencyLocale('USD'))
->setSymbolPositionAtTheEnd();
use Mistralys\CurrencyParser\PriceFilter;
$formatted = PriceFilter::createForLocales('USD')
->filterString($subject);
use Mistralys\CurrencyParser\PriceFilter;
$formatted = PriceFilter::createForLocales('USD')
->setNonBreakingSpaceHTML()
->filterString($subject);
use Mistralys\CurrencyParser\PriceFilter;
use Mistralys\CurrencyParser\PriceFormatter;
// Configure a custom formatter
$customFormatter = PriceFormatter::createCustom()
->setDecimalSeparator(' ')
->setThousandsSeparator(',')
->setSymbolPositionBeforeMinus()
->setSymbolModeName();
$formatted = PriceFilter::create()
->setFormatter('USD', $customFormatter)
->filterString($subject);
use Mistralys\CurrencyParser\PriceFilter;
use Mistralys\CurrencyParser\PriceFormatter;
// Configure a custom formatter
$customFormatter = PriceFormatter::createCustom()
->setDecimalSeparator(' ')
->setThousandsSeparator(',')
->setSymbolPositionBeforeMinus()
->setSymbolModeName();
$formatted = PriceFilter::createForLocales('EUR_FR')
->setFormatter('USD', $customFormatter)
->filterString($subject);
use Mistralys\CurrencyParser\PriceParser;
$subject = 'Price of a basic subscription: 50,42 €.';
$prices = PriceParser::create()
->expectCurrency('EUR')
->findPrices($subject);
use Mistralys\CurrencyParser\PriceParser;
$subject = '(document with prices here)';
$prices = PriceParser::create()
->expectAnyCurrency()
->findPrices($subject);
use Mistralys\CurrencyParser\PriceParser;
$subject = <<<EOT
Canadian dollars: $1,000
U.S. dollars: $1,000
EOT;
$prices = PriceParser::create()
->expectCurrency('USD')
->expectCurrency('CAD')
->findPrices($subject);
echo $prices[0]->getCurrencyName(); // USD
echo $prices[1]->getCurrencyName(); // USD
use Mistralys\CurrencyParser\PriceParser;
$subject = <<<EOT
Canadian dollars: CAD1,000
U.S. dollars: USD1,000
EOT;
$prices = PriceParser::create()
->expectCurrency('USD')
->expectCurrency('CAD')
->findPrices($subject);
echo $prices[0]->getCurrencyName(); // CAD
echo $prices[1]->getCurrencyName(); // USD
use Mailcode\Mailcode;
use Mistralys\CurrencyParser\PriceParser;
use Mistralys\CurrencyParser\PriceFilter;
$text = 'Price from a variable: {showvar: $FOO.PRICE} EUR';
// Replace Mailcode commands with placeholders
$safeguard = Mailcode::create()->createSafeguard($text);
$safeText = $safeguard->makeSafe();
$currencyParser = PriceParser::create()
->expectCurrency('EUR')
->expectMailcode();
// Format all currencies in the text
$formattedText = PriceFilter::create($currencyParser)
->filterString($safeText);
// Restore the Mailcode commands
$filteredText = $safeguard->makeWhole($formattedText);