PHP写个网页小工具来监控你的加密币 原

编写一个网页小工具来监控你的加密币投资组合的价值,只需要非常简单的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数据提取到他们网站的人有所帮助。:-)

=====================================================================

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Golang语言社区

服务器开发语言比较

以下比较的基础都是基于一种编程语言+一定的第三方或者自己编写的网络库和底层进行的,Skynet稍微特殊,但总体比较合适放到比较中来 C# 开发效率:Window...

35850
来自专栏Golang语言社区

服务器开发语言比较

下比较的基础都是基于一种编程语言+一定的第三方或者自己编写的网络库和底层进行的,Skynet稍微特殊,但总体比较合适放到比较中来 C# 开发效率:Windows...

734130
来自专栏企鹅号快讯

区块链技术(一):Truffle开发入门

区块链专栏作家 瀚德FinTech创新学院 特邀讲师:汪晓明 ? 芯链项目创始人,朝夕网络CEO。10年互联网技术开发经验。曾参与创立银联大数据、Beltal,...

28790
来自专栏BIT泽清

金融,借贷,股票,贷款超市类型的App无相关资质提审被拒解决方案

由于最近经常帮客户上金融App,需要将公司开发者帐号中的App 转移到 新的公司帐号中,特此记下流程,便于 其他iOS开发者 做App 转移。

24940
来自专栏芋道源码1024

Dubbo源码解析 —— Zookeeper 订阅

前言 上周写完了服务暴露总结之后发现遗漏了一个很重要的点,在dubbo源码解析-zookeeper连接中我们对面试高频题 dubbo中zookeeper做注册...

32770
来自专栏古时的风筝

为什么你在群里提的技术问题没人回答?

作为一个程序员,把代码写好是本分,但仅仅是写好代码是不够的,工作的过程中总免不了要与别人打交道。几乎隔一段时间,我就会发现有些人身上出现下面的这两个问题。第一个...

13020
来自专栏申龙斌的程序人生

熊市里生成几个BTC靓号,冷存储起来装死吧

最近行情好冷,BTC价格一度跌穿7500$,其它山寨币更是跌得惨不忍睹。可怜我前一段时间刚换的PRS,连创新低,看来以后绝不能轻易出手BTC和EOS。 为了把...

46150
来自专栏CSDN技术头条

Fourinone如何实现并行计算和数据库引擎

彭渊,在Java技术领域从业十多年,曾撰写多款开源软件,历任淘宝高级专家和华为中间件首席架构师。开源代表作有Fourinone(四不像)分布式核心技术框架、Co...

30850
来自专栏逍遥剑客的游戏开发

UE4学习笔记(二): IOS游戏部署

30340
来自专栏张戈的专栏

妹子你真萌:一次心惊肉跳的服务器误删文件的恢复过程

刚在我的订阅里面看到这篇文章,在爆笑之余也让跟我一样的运维农民工们发人深省,所以转过来分享一下。妹子啊妹子,网上找的东西也不能直接照搬啊,太萌了~~哈哈! 作者...

663110

扫码关注云+社区

领取腾讯云代金券