Blogger Information
Blog 5
fans 0
comment 0
visits 5942
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
php程序设计一个小的Bootstrap小程序
小不懂的博客
Original
862 people have browsed it

使用免费的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>‘;

  1. // name:
  2. echo '<td>' . $coinData[$xx]['name'] .'</td>';
  3. // symbol:
  4. echo '<td>' . $thisCoinSymbol .'</td>';
  5. // price:
  6. $thisCoinPrice = $coinData[$xx]['price_usd'];
  7. echo '<td>&#36;' . number_format($thisCoinPrice,2) .'</td>';
  8. // holdings:
  9. echo '<td>';
  10. if ($coinHeld) {
  11. $myBalance_units = $myCoins[$thisCoinSymbol]['balance'];
  12. echo number_format($myBalance_units,10);
  13. }
  14. echo '</td>';
  15. // track running total value of coins:
  16. if ($coinHeld) {
  17. $myBalance_USD = $myBalance_units * $thisCoinPrice;
  18. $portfolioValue += $myBalance_USD;
  19. }
  20. // value:
  21. echo '<td>&#36;'. number_format($myBalance_USD,2) .'</td>';
  22. // 1h market change:
  23. echo '<td>' . $coinData[$xx]['percent_change_1h'] .'%</td>';
  24. // 24h market change:
  25. echo '<td>' . $coinData[$xx]['percent_change_24h'] .'%</td>';
  26. // 7d market change:
  27. 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>$’ . 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’ )
);
……然后你的小部件或报告可能会更令人兴奋。我实际上喜欢使用一个小型数据库应用程序来跟踪余额,而不必在余额发生变化时随时更新代码。但是,对我来说,这就像其他任何事情一样简单,而且速度很快……当然,我的余额是相当可悲的。但是,这个想法是你不仅限于存储代币余额;你也可以存储其他信息,并使用它来计算和/或显示你的小部件或财务报告中的结果,或者你正在构建的任何内容。

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post