Конвертер валют 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)