我是php和curl的新手。我有一个php函数,它使用curl从API检索数据。这工作正常。但是,API数据将更新,因此我将需要定期检索json格式的数据。
function call_external_api()
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, sprintf('https://my-api.com'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
$ex = curl_exec($curl);
$data = json_decode($ex, true);
$info = curl_getinfo($curl);
return $data;
}
所以基本上,如果我想每10秒调用一次此php函数,我将如何去做?
答案 0 :(得分:0)
由于您将在HTML页面上输出返回的数据,因此建议您使用JavaScript异步调用您的PHP文件。您可以在计时器上触发JavaScript调用。
根据API的不同,您甚至可能不需要PHP作为中介。
这是一个基本示例:
function getRandomNumber(min, max) {
// Generate a random number between min and max.
// Only for demonstration purposes.
return Math.floor(Math.random() * (max - min) + min);
}
function makeRequest() {
// Fetch test data by random ID.
// This is where you call your PHP file.
let id = getRandomNumber(1, 10);
oReq.open("GET", "https://reqres.in/api/users/" + id);
oReq.send();
}
function handleResponse() {
// Output returned data to page
output.innerHTML = JSON.parse(this.responseText).data.email;
// Set up the next request to fire again in two seconds
setTimeout(makeRequest, 2000);
}
// Define output element
let outout = document.getElementById('output');
// Define XMLHttp Request
let oReq = new XMLHttpRequest();
oReq.addEventListener("load", handleResponse);
// Make first request
makeRequest();
<div id="output"></div>
有关参考,请参阅: