[英]Google Finance Currency Converter
我正在使用谷歌貨幣轉換器,它適用於所有貨幣,但沒有顯示 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
但它顯示消息Could not convert
我找到了一種方法來做到這一點..只是粘貼我對未來需要的人的回答。
<?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");
當您從谷歌轉換器“無法轉換”獲得消息時 - 它意味着轉換
1 CURRENCY_A --> CURRENCY_B
導致數量太少。 在這種情況下,您需要進行反向轉換CURRENCY_A_AMOUNT / (1 CURRENCY_B --> CURRENCY_A
)
最后,我找到了解決此問題的解決方案,其中包含貨幣轉換器的更新谷歌URL。
點擊這里閱讀完整的解決方案,謝謝我
finance.google.com已停產 ,請嘗試以下方法 :
// google API - Load time: 558 ms
function google_money_convert($from, $to, $amount)
{
$url = "https://www.google.com/search?q=".$from.$to;
$request = curl_init();
$timeOut = 0;
curl_setopt($request, CURLOPT_URL, $url);
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($request, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36");
curl_setopt($request, CURLOPT_CONNECTTIMEOUT, $timeOut);
$response = curl_exec($request);
curl_close($request);
preg_match('~<span [^>]* id="knowledge-currency__tgt-amount"[^>]*>(.*?)</span>~si', $response, $finalData);
$finalData=str_replace(',', '.', $finalData);
return (float)$finalData[1]*$amount;
}
// free.currencyconverter API - Load time: 95ms
function money_convert($from, $to, $amount)
{
$url = "http://free.currencyconverterapi.com/api/v5/convert?q=$query&compact=ultra";
$request = curl_init();
$timeOut = 0;
curl_setopt($request, CURLOPT_URL, $url);
curl_setopt($request, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($request, CURLOPT_USERAGENT, "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36");
curl_setopt($request, CURLOPT_CONNECTTIMEOUT, $timeOut);
$response = curl_exec($request);
curl_close($request);
$response = json_decode($response, true);
$responseOld=$response;
// print_r($response);
return $response[$query]*$amount;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.