运行 php 间隔文件

run php file on interval

我有一个仪表板,它按设定的时间间隔播放视频。 它还从 google 分析和 google 实时分析中获取一些数据,以在 google 地图上显示。 为此,它使用 google 地图 javascript api 和 google 分析报告 php api。 该视频位于单独的 js 文件中。 地图(和实时数据)位于单独的 php 文件中。 分析数据也位于单独的 php 文件中。

现在,我遇到的问题是目前我只是使用 <?php include)('filename.php'); ?> 将它们包含在 index.php 中。 哪个有效,它输出我想要的数据、地图和视频。

但现在我想每 15 秒更新一次此信息。 我已经尝试了一些 while{ do something; sleep()} 但这会产生错误,因为它会重新声明以前的函数,例如 analytics().

我也尝试了一些 JavaScript setInterval() 并以这种方式包含文件,但这也不起作用。由于所有功能都在这些文件中,我将如何实现每 15 秒更新一次?

我也尝试过一些 GET 请求,但我不只是想要信息,因为所有功能(例如地图和图表)都在那些文件中,所以简单的数据 returns 不需要要么工作。

所以我想要的是:每 15 秒重新加载(就像刷新页面时一样).php 文件。 我不想实际刷新页面,因为这也会重置 JavaScript 视频脚本,这是我不想要的。

我已经阅读了一些关于 cronjob 的内容,是否可以按设定的时间间隔 运行 .php 文件,index.php (其中包括其他 .php 文件)也会自动更新吗?

最好的办法是将 PHP 包装在 iframe 中,然后像这样每 15 秒重新加载一次 iframe:

const reloadFrame = () =>
   document.getElementById('some_frame_id').contentWindow.location.reload();

setInterval(reloadFrame, 15000);

您遇到的问题是 PHP 渲染全部由服务器端处理,因此只需向服务器发出 GET 请求即可 return 整个渲染页面。当然,除非我误解了这个问题,并且您的 filename.php 文件将 return 仅更新地图的数据,在这种情况下,只需编写更新地图的函数并使用 [=12= 调用它]递归。

<meta http-equiv="refresh" content="15">

只需将此添加到 html header

用于定时任务

# crontab -e
00 15 * * * /usr/local/bin/php /home/john/myscript.php