是否有可能每隔微秒调用一个php脚本来检查文本文件是否已更改?

时间:2014-10-11 04:51:44

标签: php mysql ajax fopen

我正在为老虎机赛道创建一个lapcounter 每当汽车通过传感器时,它会通过微控制器将一些数据发送到计算机,然后将数据写入文件。现在我想检测该文件何时发生变化,这意味着汽车已通过传感器,并将该数据存储到数据库(mysql)中,然后实时显示在屏幕上。文件检查必须连续完成,并尽快完成..

同样是一个计数在数百秒内的计时器会很好呈现..但这是另一回事,与这个问题无关......

可能有更好的方法可以做到这一点,但我很确定在本地服务器上直接连接到微控制器的某些ajax,php和mysql是可能的。

如果我错了,请纠正我,但Facebook,Stackoverflow和即时消息/聊天使用了一些类似的未来我会假设..

1 个答案:

答案 0 :(得分:1)

文件更改的逻辑可以在php结束'check_the_file_change.php'

以下是smaple JS代码,它会每1秒向php文件发送一次请求

'check_the_file_change.php'

 $(document).ready(function(){

    function checkFileChange(){ 

          setTimeout(function () {

                                   $.ajax({
                                     url    :'check_the_file_change.php',
                                     type   : 'POST',
                                     data   :{
                                      user_secret : 'XXXX' 
                                     },
                                     success : function(respsone){

                                           if(response == "true"){                           
                                               //file changed
                                           }else{          
                                              //file not chnaged   
                                           }

                                     },
                                     complete : function(){
                                        checkFileChange(); //net file check after 1 sec from the completion of the previous request
                                     }                                   
                                   });



                    },1000);
          }

    }

});

在PHP结束

  header("Access-Control-Allow-Origin: *"); // use this in case the ajax call is coming from other domain 


 $filename = 'somefile.txt';

  if (file_exists($filename)) {

        if( time() - filemtime($filename) > 60){ 

          echo "false";

        }else{ //file is modified 1 minute ago

          echo "true";

        }

  }