Конвертер валют Google
Я работаю над конвертером валют Google и отлично работает для всех валют, но не показывает
результаты преобразования ZAR - BTC
.
Код конвертера в Google:
<?php
function convertCurrency($amount, $from, $to){
$data = file_get_contents("https://finance.google.com/finance/converter?a=$amount&from=$from&to=$to");
preg_match("/<span class=bld>(.*)<\/span>/",$data, $converted);
$converted = preg_replace("/[^0-9.]/", "", $converted[1]);
return number_format(round($converted, 3),2);
}
echo convertCurrency("1000000", "ZAR", "BTC");
Ожидаемый результат должен быть 8.26
из google, но он показывает сообщение Could not convert
Ответы
Ответ 1
Я нашел способ сделать это... просто вставив свой ответ для того, кто нуждается в будущем.
<?php
function convertCurrency($amount, $from, $to){
$data = file_get_contents("https://finance.google.com/finance/converter?a=$amount&from=$from&to=$to");
preg_match("/<span class=bld>(.*)<\/span>/",$data, $converted);
$converted = preg_replace("/[^0-9.]/", "", $converted[1]);
return number_format(round($converted, 3),2);
}
convertCurrency("1", "BTC", "ZAR");
function ZARtoBTC($amount){
$BTC = convertCurrency("1", "BTC", "ZAR");
$f_amount = number_format($amount, 3);
$val = $f_amount / $BTC ;
return number_format($val, 2);
}
echo ZARtoBTC("100000");
Ответ 2
Когда вы получаете сообщение из Google конвертера "Невозможно преобразовать" - это означает, что преобразование 1 CURRENCY_A --> CURRENCY_B
приводит к слишком малой сумме. В этом случае вам нужно сделать обратное преобразование CURRENCY_A_AMOUNT / (1 CURRENCY_B --> CURRENCY_A
)