我正在尝试使用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
答案 0 :(得分:0)
为了刷新PHP数组中的数据,您必须从PHP代码中针对您的API运行新的HTTP请求。 如果没有刷新PHP渲染的页面,你需要保持连接打开(这只会持续你的php.ini max_execution_time,并且PHP无法编辑它已发送的数据,所以离你最近的可以得到的是一个在底部附加新行的新闻报道)
如果你想要的只是一个自我刷新的网站,你必须使用JavaScript(可以无限运行并定期从你的PHP后端请求新数据)。一般来说,寻找AJAX或XMLHttpRequests。
答案 1 :(得分:0)
如果你必须坚持使用PHP,你可能希望在后台运行一个独立的进程(在Linux / Unix上checkout nohup
或disown
。)
您的脚本会执行以下操作:
<?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等替代方案。