【问题标题】:Find the time since index.php was last visited, widget查找自上次访问 index.php 以来的时间,小部件
【发布时间】:2015-04-16 10:15:57
【问题描述】:

我在互联网上进行了大量搜索以找到解决此问题的方法;但是,我仍然无法找到真正的答案。

我想在我的网站上有一个小部件,以秒为单位向用户显示自有人上次访问该网站以来的时间。例如,如果有人刷新页面,时钟将重置为“0”。

不要与某个特定个人上次访问该网站的时间相混淆,我要查找自有人发送index.php 请求以来的时间。

我认为执行此操作的方法与大量 PHP 相关,而我并不擅长。任何人都可以提供的任何帮助、建议或指示都会很棒!非常感谢。

最后,为了防止更多混乱,时钟不需要在浏览器上实时显示。每次重新加载页面时它都会改变。

【问题讨论】:

  • 我有一个 2 列的表、页面 (varchar)、lastvisit (datetime) 并在每次加载时更新 lastvisit 列。您必须手动创建页面记录。

标签: php html widget


【解决方案1】:

(正如您在问题中所说)查找自从 ANYONE 发送 index.php 请求以来的时间的最佳方法如下:

创建一个小viewer.txt 文件来存储最后的时间戳信息,并用unix 秒内最近一次用户访问的函数time() 覆盖它,如下所示。然后在另一个文件上与当前时间进行比较。 (这种方法比套接字容易得多,并且类似于一个小数据库)。我已经为你编写了这个代码,把它放在你想要的页面上。它功能齐全,我已经测试过了:

文件 1(跟踪和存储最近的用户访问):

<?php

$file = fopen("viewer.txt", "w");

fwrite($file, "".time()."");

fclose($file);

?>

文件 2(比较当前时间与上次用户访问):

<?php

$file = file_get_contents("viewer.txt");

$file = (int)$file;

echo "Difference in time from last visit in seconds:";

echo $file - time();

?>

如果有帮助,请在答案旁边打勾。

如果您有更多问题,请随时向我寻求更多帮助。

【讨论】:

  • 我之前更喜欢文本文件而不是数据库,但数据库比文本文件有很多优势。 stackoverflow.com/questions/2356851/database-vs-flat-files 我不认为处理任何数据的最糟糕的方法是使用文本文件。例如,考虑使用此解决方案一次访问 OP 页面的 10 或 100 个用户。
  • 对于规模不大且只会存储几个字节数据的东西,我看不出问题出在哪里。虽然我总体上同意你的观点。 @chris85
  • 非常感谢,该项目目前规模很小,但我也会研究使用数据库作为解决方案。非常感谢!
  • 你能用复选标记标记我的答案吗? @谢谢你我确实付出了努力。
  • 嗨,对不起,我会的。只是一个简单的问题,这是在我的 index.php 的顶部。 &lt;?php $file = fopen("viewer.txt", "w"); fwrite($file, "".time().""); fclose($file); ?&gt; &lt;?php $file = file_get_contents("viewer.txt"); $file = (int)$file; $realtime = $file - time(); ?&gt; &lt;!doctype html&gt; &lt;html lang="en"&gt; &lt;head&gt; . . . etc 然后我把&lt;?php echo $realtime; ?&gt; 我也有一个viewer.txt 在同一个目录中,但是读数只显示0,即使在离开几分钟后也是如此。非常感谢!
猜你喜欢
  • 2018-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-21
  • 2014-12-20
相关资源
最近更新 更多