如何使用php自动更新json api中的数据?

时间:2018-03-27 20:34:51

标签: php arrays json api

我正在尝试使用PHP的JSON Api。 我使用Blockchain的免费比特币价格自动售票机api。 它的工作,但刷新我需要刷新页面的数据。 是否可以在不刷新页面的情况下自动更新数据? 这就是我现在所做的(它的工作)

<?php

$json = file_get_contents('https://blockchain.info/ticker');
$data = json_decode($json,true);

$priceUSD = $data['USD']['last'];

echo $priceUSD;

提前致谢,祝你有愉快的一天!

金问候,

L Kenselaar

2 个答案:

答案 0 :(得分:0)

为了刷新PHP数组中的数据,您必须从PHP代码中针对您的API运行新的HTTP请求。 如果没有刷新PHP渲染的页面,你需要保持连接打开(这只会持续你的php.ini max_execution_time,并且PHP无法编辑它已发送的数据,所以离你最近的可以得到的是一个在底部附加新行的新闻报道)

如果你想要的只是一个自我刷新的网站,你必须使用JavaScript(可以无限运行并定期从你的PHP后端请求新数据)。一般来说,寻找AJAX或XMLHttpRequests。

答案 1 :(得分:0)

如果你必须坚持使用PHP,你可能希望在后台运行一个独立的进程(在Linux / Unix上checkout nohupdisown。)

您的脚本会执行以下操作:

<?php

while(true){
    try {
        $json = file_get_contents('https://blockchain.info/ticker');
        $data = json_decode($json,true);

        $priceUSD = $data['USD']['last'];

        // Do the internal handling
        // update your database, etc
    }
    catch (Exception $e) {
        echo 'Error: ' .  $e->getMessage() . "\n";
    }

    // wait for 5 seconds
    sleep(5);
}

请记住,PHP代码在阻塞线程中运行,这意味着此过程必须在您的Web服务器旁边运行。

但是,如果您希望同时执行这两项任务(获取和提供请求),则必须考虑NodeJS等替代方案。