如何检测何时使用PHP更新页面

如何检测何时使用PHP更新页面,php,scripting,Php,Scripting,我想知道如何检测何时使用PHP更新页面。我在谷歌上做过调查,但什么也没发现 我想做的是在页面更新时调用特定函数。为了运行代码,我将运行cron作业 我想要这样的东西: if (page updated) { //functions } else { //functions } 如果我不能做类似的事情,那么我想至少知道如何检测何时使用PHP更新页面。请帮忙 您无法简单地检测页面是否已使用php更新,请尝试改用javascript 这里我假设您包括jquery库: <script type=

我想知道如何检测何时使用PHP更新页面。我在谷歌上做过调查,但什么也没发现

我想做的是在页面更新时调用特定函数。为了运行代码,我将运行cron作业

我想要这样的东西:

if (page updated) {
//functions
}
else
{
//functions
}

如果我不能做类似的事情,那么我想至少知道如何检测何时使用PHP更新页面。请帮忙

您无法简单地检测页面是否已使用php更新,请尝试改用javascript

这里我假设您包括jquery库:

<script type="text/javascript">
     $( document ).ready( function(){
        $("#someElementInYourPageYouWannaWatch").change( function(){
          $.ajax({
            url:'http://yourwebsite.php/your_controller.php',
            ...
            success: function( response ){
              $("#someNotifyElement).html('updated');
            }
          });

        });
     });
</script>

$(文档).ready(函数(){
$(“#YourPageYouwannaWatch中的某些元素”).change(函数(){
$.ajax({
网址:'http://yourwebsite.php/your_controller.php',
...
成功:功能(响应){
$(“#someNotifyElement).html('updated');
}
});
});
});
类似于:)

用于获取页面内容,从中创建MD5哈希,并将其与已有的哈希进行比较。我建议将此哈希存储在一个简单的文件中

$contents = file_get_contents('http://site.com/page');
$hash     = file_get_contents('hash'); // the text file where the hash is stored
if ($hash == ($pageHash = md5($contents))) {
  // the content is the same
} else {
  // the page has been updated, do whatever you need to do
  // and store the new hash in the file
  $fp = fopen('hash', 'w');
  fwrite($fp, $pageHash);
  fclose($fp);
}

不要忘记设置为“开”。

正如您所说,您可以每小时或15分钟运行一次cron,或者其他任何操作。它必须访问该页面,获取其修改日期,将其与存储值进行比较,如果不同,则执行某些操作。 显然,您需要更新您的信息,并将页面的当前日期设置为$last_set_date或其他任何内容。(应该在数据库中完成)

此快速片段获取页面的上次更新时间(以下是有关该主题的更多信息:):


在你得到这个后,你所需要做的就是将它与你喜欢的存储方式(文本文件、数据库)的前一个值进行比较,看看它是否不同。这就是更新的
页面
检查你的脚本


请随时通过评论给我更多的澄清,我会尝试改进我的答案。

如果($old_text!=$new_text)
?如何?您想检查表是否已更新,还是只想在PHP代码中添加一个侦听器类,还是什么?请记住-PHP是服务器端。“页面更新。”“是浏览器端的。我想这可能有用,我要试试。非常感谢你!请小心,因为某些主机可能不允许这种远程文件访问,从而导致错误的行为It’t worked,非常感谢!我还有一个问题,我如何检测更新的内容?我的意思是,当文件更新时,会添加一行新行。如何检测添加的新行?很高兴它起作用。-strcmp()可能就是您所需要的。但是我不知道它在一个大的HTML文件上有多好。祝你好运!:)有没有一种方法可以让“散列”文件保存文件的实际文本?任何帮助都将不胜感激!我认为这个回答不准确。您可以使用PHP检查是否检测到页面。请参阅上面的其他答复。是的,不正确。这可以(也可能应该,这取决于)完全用PHP完成。这里的巨大限制是,您希望另一端的服务器提供最后修改的头,并且是准确的头。很多服务器都不提供此标头,如果提供,则不清楚它们将读取什么来填充此标头。
<?php
$url = 'http://www.example.com';
$h = get_headers($url, TRUE);
echo "LAST MODIFIED: ", $h["Last-Modified"];
?>