Php
如何從不同來源獲得比特幣兌美元的平均價格
我在這裡創建了一個非常簡單的 php 函式來獲取比特幣的目前價格到美元,
//get from coin market $getCoinMarketPrice = getPrice('https://api.coinmarketcap.com/v1/ticker/bitcoin/?convert=USD'); $btcValues[1]= $getCoinMarketPrice[0]['price_usd']; //get from bitstamp // $getBitstampPrice = getPrice('https://www.bitstamp.net/api/v2/ticker/btcusd/'); $btcValues[2] = $getBitstampPrice['last']; //get from blockchain $getBlockchainPrice = getPrice('https://blockchain.info/ticker'); $btcValues[3] = $getBlockchainPrice['USD']['last']; //get from cytptonator $getCtyptonatorPrice = getPrice('https://api.cryptonator.com/api/ticker/btc-usd'); $btcValues[4] = $getCtyptonatorPrice['ticker']['price']; $total=0; for ($i=0; $i < count($btcValues[$i]); $i++) { $total +=$btcValues[$i]; } $average = $total/count($btcValues[$i]); return $average;
上面的這段程式碼將從不同的來源獲得比特幣價格,並將它們加在一起,然後除以它獲得它們的來源的總數,例如
來自區塊鍊和 bitpay 和 Xapo 的比特幣分別為 6000,5689,5997,因此為了得到平均結果,我們將這些結果相加並除以 3。
這段程式碼執行良好,但它使我的應用程序非常慢,有時甚至超時。請我需要它比這更好,謝謝
您會希望避免在每次頁面載入時都這樣做。相反,我建議將其設置為每 N 分鐘執行一次並將值轉儲到數據庫中的 cronjob。然後從您的數據庫中提取每個頁面載入,而不是從外部來源獲取。這將使您的頁面載入速度更快,並且您不會有太多的 api 請求。大多數網站都會限制您的請求數量,如果您在每次頁面載入時都對它們進行 ping 操作,您可能會被阻止。