You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP实现JSON API数据自动更新(无需刷新页面)

无需刷新页面自动更新比特币价格的实现方案

嘿,我来帮你搞定这个问题!你的PHP代码能正常获取数据,但因为PHP是服务器端语言,页面加载完成后就没法主动更新内容了。要实现无刷新自动更新,咱们得结合前端JavaScript来定时请求数据并更新页面元素。下面给你两种实用的方案:

方案一:前端直接调用API(最简洁)

Blockchain的这个价格API支持跨域请求,所以咱们可以直接在前端用JS定时拉取数据,不用绕PHP中转:

<!DOCTYPE html>
<html>
<head>
    <title>实时比特币价格</title>
</head>
<body>
    <h3>当前比特币价格(USD):<span id="btcPrice">加载中...</span></h3>

    <script>
        // 定义更新价格的函数
        function updateBtcPrice() {
            fetch('https://blockchain.info/ticker')
                .then(response => response.json())
                .then(data => {
                    const priceUSD = data.USD.last;
                    // 把价格更新到页面上的元素里
                    document.getElementById('btcPrice').textContent = priceUSD.toFixed(2);
                })
                .catch(error => {
                    console.error('获取数据出错啦:', error);
                    document.getElementById('btcPrice').textContent = '获取失败';
                });
        }

        // 页面刚加载时先获取一次价格
        updateBtcPrice();
        // 每隔10秒自动更新一次(你可以改成5000就是5秒,按需调整)
        setInterval(updateBtcPrice, 10000);
    </script>
</body>
</html>

方案二:通过PHP代理(适合需要后端处理的场景)

如果你还是想通过PHP来处理数据(比如要加一些额外的逻辑,比如缓存数据减轻API压力),可以写个简单的PHP接口,然后前端定时请求它:

第一步:创建get-btc-price.php文件

<?php
// 设置返回JSON格式的响应头
header('Content-Type: application/json');
// 拉取API数据并直接返回
$json = file_get_contents('https://blockchain.info/ticker');
echo $json;
?>

第二步:前端页面代码

<!DOCTYPE html>
<html>
<head>
    <title>实时比特币价格</title>
</head>
<body>
    <h3>当前比特币价格(USD):<span id="btcPrice">加载中...</span></h3>

    <script>
        function updateBtcPrice() {
            // 请求咱们自己的PHP接口
            fetch('get-btc-price.php')
                .then(response => response.json())
                .then(data => {
                    const priceUSD = data.USD.last;
                    document.getElementById('btcPrice').textContent = priceUSD.toFixed(2);
                })
                .catch(error => {
                    console.error('获取数据出错啦:', error);
                    document.getElementById('btcPrice').textContent = '获取失败';
                });
        }

        // 初始化加载+定时更新
        updateBtcPrice();
        setInterval(updateBtcPrice, 10000);
    </script>
</body>
</html>

几个小提示

  • 定时间隔:setInterval的第二个参数是毫秒数,10000就是10秒,你可以根据需求调整,别太频繁哦,不然可能被API限制请求。
  • 价格格式化:toFixed(2)是把价格保留两位小数,让显示更整齐,不需要的话可以去掉。
  • 错误处理:加了catch块,就算请求失败,页面也不会一直显示“加载中”,用户体验更好。

这样就能实现页面不用刷新,自动更新比特币价格啦!

内容的提问来源于stack exchange,提问作者Luuk Kenselaar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:33:52