PHP 寫個網頁小工具來監控你的加密數字貨幣

geeker發表於2018-11-12

編寫一個網頁小工具來監控你的加密幣投資組合的價值,只需要非常簡單的PHP和HTML技能就行。

文章目的超級簡單,但我認為可能有很多人會加入加密貨幣的投資,在某個地方擁有一個網站,並想建立一個私人(或者hell,也許是public)頁面在某個地方實時顯示你的加密投資組合的價值。但是,你可能不知道如何自己編寫程式碼。

使用免費的Coinmarketcap API非常容易。當你為它新增一些樣式時,你可以製作你的投資組合小部件,方式沒有限制,你也可以新增多少額外的數學和計算。

對於我來說基本上只是做了一個小的Bootstrap表並將它設定為輸出我自己的可憐的“portfolio”,在我擁有它的頁面上,它呈現出來如下:

現在這麼容易!每當我想知道我的組合價值時,我就在想我原來是多麼可笑,徹底厭倦了用幣值去更新電子表格。

你只需要一個可以使用的網站,例如,任何執行Wordpress的普通伺服器。在下面的示例程式碼中,我已經取出了bootstrap的東西,所以它應該只是渲染一個普通的舊HTML表。你可能想要新增自定義類或其他很酷的東西(例如,將負百分比設定為紅色,將正數設定為綠色)。

首先,你需要告訴程式碼你擁有的每種貨幣的數量。我使用了一個陣列來儲存,在下面的程式碼中稱為$myCoins。希望你可以看到如何使用你自己的貨幣符號為自己定製,並在那些位置放置餘額。請注意,無論何時購買更多加密幣和更改內容,你都需要在指令碼的$myCoins部分更新餘額。

無論如何,這是基本程式碼,我將在下面新增更多評論。:-)

<?php
$myCoins = array(
   'BTC' => array ( 'balance' => 0.0093 ),
   'ETH' => array ( 'balance' => 0.235724420 ),
   'XRB' => array ( 'balance' => 2.524402070 ),
   'MIOTA' => array ('balance' => 33.000000000 ),
   'XRP' => array ( 'balance' => 49.000000000 ),
   'XLM' => array ( 'balance' => 105.894000000 ),
   'TRX' => array ( 'balance' => 599.400000000 )
);
// ok now hit the api...
$coinbasePublicAPI = 'https://api.coinmarketcap.com/v1/ticker/';
$coinData = file_get_contents($coinbasePublicAPI);
$coinData = json_decode($coinData, true);
echo '<table>';
echo '<tr>';
   echo '<td>NAME</td>';
   echo '<td>SYMBOL</td>';
   echo '<td>PRICE</td>';
   echo '<td>HOLDINGS</td>';
   echo '<td>VALUE</td>';
   echo '<td>1hr</td>';
   echo '<td>24hr</td>';
   echo '<td>7day</td>';
echo '</tr>';
$numCoinbaseCoins = sizeof ($coinData);
$portfolioValue = 0;
for ( $xx=0; $xx<$numCoinbaseCoins; $xx++) {
   // this part compares your coins to the data...
   $thisCoinSymbol = $coinData[$xx]['symbol'];
   // if you have it, this var is true...
   $coinHeld = array_key_exists($thisCoinSymbol, $myCoins);
   // comment the next line out & you will see ALL of the coins 
   // returned (not just the ones you own):
   if ( !$coinHeld ) { continue; }

   echo '<tr>';

      // name:
      echo '<td>' . $coinData[$xx]['name'] .'</td>';

      // symbol:
      echo '<td>' . $thisCoinSymbol .'</td>';

      // price:
      $thisCoinPrice = $coinData[$xx]['price_usd'];
      echo '<td>&#36;' . number_format($thisCoinPrice,2) .'</td>';

      // holdings:
      echo '<td>';
         if ($coinHeld) {
            $myBalance_units = $myCoins[$thisCoinSymbol]['balance'];
            echo number_format($myBalance_units,10);
         }
      echo '</td>';

      // track running total value of coins:
      if ($coinHeld) {
         $myBalance_USD = $myBalance_units * $thisCoinPrice;
         $portfolioValue += $myBalance_USD;
      }
      // value:            
      echo '<td>&#36;'. number_format($myBalance_USD,2) .'</td>';
      // 1h market change:
      echo '<td>' . $coinData[$xx]['percent_change_1h'] .'%</td>';
      // 24h market change:
      echo '<td>' . $coinData[$xx]['percent_change_24h'] .'%</td>';
      // 7d market change:
      echo '<td>' . $coinData[$xx]['percent_change_7d'] .'%</td>';

   echo '</tr>';

}
echo '<tr>';
   echo '<td colspan="4"><strong>TOTAL</strong></td>';
   echo '<td colspan="4"><strong>&#36;' . number_format($portfolioValue,2) . '</strong></td>';
echo '</tr>';
echo '</table>';
?>

......這就是你所需要的。只需自定義初始的$myCoins陣列,它應該渲染你的表。很可能,你的投資組合比我的投資組合更令人印象深刻,因為我對這一切都很陌生,而且我仍然在學習加密投資。

筆記

上面的指令碼擊中了Coinmarketca.com API。API方法和其他說明如下:https://coinmarketcap.com/api/

他們要求你每分鐘呼叫API不超過10次,所以,也許不要把它放在一個24/7流量瘋狂的網站上。

上面的例程只呼叫了一次主API,所以它只會輸入前100個代幣。如果你正在投資一個位於列表中的代幣,你需要自定義上面的指令碼以迭代多次呼叫API,這可以通過在URL的末尾新增“start”引數來完成,如:https://api.coinmarketcap.com/v1/ticker/?start=100你需要設定API命中迴圈並從結果中構建更大的資料集,然後將其全部解析到螢幕上。

OTOH,我想,為了讓他們全部(我認為他們有大約1,500個代幣),你需要呼叫他們的API超過10倍,所以它不是做任何大型開發或專案的好資源。顯然,他們會為這樣的東西推出付費API。

除了新增樣式等,可能需要構建你的代幣列表以包含更豐富的資訊。例如,不是我展示的簡單陣列,也許你的看起來像:

$myCoins = array(
   'BTC' => array ( 'balance' => 0.0093, 'wallet' => 'Coinbase', 'notes' => 'whatever', 'buy-in-price' => '8005.22' ),
   'ETH' => array ( 'balance' => 0.235724420, 'wallet' => 'Trezor', 'notes' => 'whatever', 'buy-in-price' => '555.88' ),
   'XRB' => array ( 'balance' => 2.524402070, 'wallet' => 'Binance', 'notes' => 'whatever', 'buy-in-price' => '1.25' ),
   'MIOTA' => array ('balance' => 33.000000000, 'wallet' => 'GDAX', 'notes' => 'whatever', 'buy-in-price' => '0.25' ),
   'XRP' => array ( 'balance' => 49.000000000, 'wallet' => 'Kucoin', 'notes' => 'whatever', 'buy-in-price' => '1.25' ),
   'XLM' => array ( 'balance' => 105.894000000, 'wallet' => 'Paper wallet', 'notes' => 'whatever', 'buy-in-price' => '2.50' ),
   'TRX' => array ( 'balance' => 599.400000000, 'wallet' => 'Bittrex', 'notes' => 'whatever', 'buy-in-price' => '0.054' )
);

......然後你的小部件或報告可能會更令人興奮。我實際上喜歡使用一個小型資料庫應用程式來跟蹤餘額,而不必在餘額發生變化時隨時更新程式碼。但是,對我來說,這就像其他任何事情一樣簡單,而且速度很快......當然,我的餘額是相當可悲的。但是,這個想法是你不僅限於儲存代幣餘額;你也可以儲存其他資訊,並使用它來計算和/或顯示你的小部件或財務報告中的結果,或者你正在構建的任何內容。

簡單,我知道......但有點樂趣,並希望對一些想要將Coinmarketcap.com資料提取到他們網站的人有所幫助。:-)

php以太坊,主要是介紹使用php進行智慧合約開發互動,進行賬號建立、交易、轉賬、代幣開發以及過濾器和交易等內容。
php比特幣開發教程,本課程面向初學者,內容即涵蓋比特幣的核心概念,例如區塊鏈儲存、去中心化共識機制、金鑰與指令碼、交易與UTXO等,同時也詳細講解如何在Php程式碼中整合比特幣支援功能,例如建立地址、管理錢包、構造裸交易等,是Php工程師不可多得的比特幣開發學習課程。

這裡是原文PHP寫個網頁小工具來監控你的加密幣

相關文章