【发布时间】:2013-12-01 19:46:56
【问题描述】:
我正在尝试使用 Coinbase API 以 mBTC(毫比特币)列出项目的当前美元价格。这是我的代码:
<?php
$string = file_get_contents('https://coinbase.com/api/v1/prices/spot_rate');
$result = json_decode($string);
$spot = $result->amount;
$price = 2; //change this to your USD value
$whole = substr($price/$spot, 4, -13);
$dec = substr($price/$spot, 4, -12);
echo $whole.'.'.$dec.' mBTC';
?>
它在 Coderunner(用于开发的 OS X 应用程序)中完美运行,但在我的托管服务器上运行时失败。浏览器脚本链接:http://bitcoindecals.com/oval-price.php
我正在使用 Dynadot Advanced 托管,它包括 PHP 支持。我知道正在使用 PHP,因为“mBTC”被正确回显。只是因为某种原因没有设置$whole 和$dec 变量。有没有办法让它工作?
【问题讨论】:
-
您是否从对 API 的调用中获得任何回报?是否正确解码?
-
是的,我可以回显
$spot,它会给我全部价值。看来$whole和$dec变量仍然在此服务器上以某种方式搞砸了。我只是尝试在不同的服务器上使用相同的脚本,并且在 Coderunner 中的工作方式与它在 Coderunner 中的工作方式完全相同。 -
如果
$string填充不正确(这似乎是原因),那么很可能file_get_contents()函数的 url 包装器在该 php 中 not 启用配置。所以它只允许读取本地文件(服务器本身的文件)。检查一下,如果是这种情况,您必须实施不同的策略来获取远程数据。最简单的是使用curlphp 扩展。 -
我可以在这台服务器上使用
file_get_contents没有问题。我能够毫无问题地获得echo $spot;的输出。$whole和$dec让事情变得很奇怪。 -
如果你没有得到
$price/$spot,$price/$spot的 int 值,它不会得到正确的结果。所以我可能猜你需要将$spot值转换为int。