php每2秒更新一次数组

php每2秒更新一次数组,php,arrays,file,Php,Arrays,File,我有一个动态文件文件夹,每2秒就有一个新文件 我想每2秒钟检查一次是否有新文件 如果有新文件,请将它们添加到数组中 每个文件大小约为1m 我开始获取文件,然后开始读取一个又一个文件, 我需要在读取文件时更新数组,并在浏览器关闭时继续读取和更新 我用那个密码 if ($files = glob('/files/'.$video_id.'*.ts')) { $files = array_slice($files, -6, 6, true); foreach ($files as &$

我有一个动态文件文件夹,每2秒就有一个新文件 我想每2秒钟检查一次是否有新文件 如果有新文件,请将它们添加到数组中

每个文件大小约为1m

我开始获取文件,然后开始读取一个又一个文件, 我需要在读取文件时更新数组,并在浏览器关闭时继续读取和更新

我用那个密码

if ($files = glob('/files/'.$video_id.'*.ts')) {
$files = array_slice($files, -6, 6, true);
    foreach ($files as &$file) {
        if(!file_exists($file)) {
        unset($files[$file]);
        asort($files);
        reset($files);
        }
        $fp = @fopen($file, "r");
        echo fread($fp, filesize($file));
            $newfiles = glob('/files/'.video_id.'*.ts');
            $newfiles = array_slice($newfiles, -6, 6, true);
                foreach ($newfiles as &$newfile) {
                    if(!in_array($newfile, $files, true)){
                    array_push($files, $newfile);
                    asort($files);
                    reset($files);
                    }
                }
    }
}

首先,您必须了解,当字符串存储在服务器内存中时,php字符串无法在php内部刷新。在某些情况下,您可以在php脚本的顶部使用:

header('Refresh: 2'); 
但是这将刷新整个页面,即使您从其他文件中包含它。或者你把它放在一个特定的地方
header()
用于重新加载或重定向整个页面。这对用户来说很烦人

☼ 解决方案:以避免出现一种称为(Ajax)的方法来处理这种情况。示例:


  • AJAX中,有许多选择可以处理您的情况,其中一些选择:
    ..................................................................................................................
  • JavaScript和xml | html
  • jQuery和xml | html

✔ - 使用(
Ajax
)调用(
php脚本
):

  • 1-在脚本目录中创建一个新的php文件 并将其命名为示例:(Request.php) 然后在其中添加(要重新加载的php代码)


  • 2-现在在您的索引页面或视频页面“无论什么”中添加以下内容:

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    
    
    
然后阅读本文,了解Ajax的全部基本概念:

其他方式最简单的方式是抛出(JQuery加载):


setInterval(函数(){
$('#Request').load('Request.php');
},  2000);
然后将其添加到html区域(您希望代码显示在其中):

这里是您的html视频容器
我看到您试图呼叫一些视频链接,所以更改:

>您的html视频容器这里的qyestion是什么?您想每两秒钟读取、解析和处理所有文件,所有大小为MB的文件?我需要在浏览器读取文件和更新时更新数组,只要浏览器关闭与您之前发布的不相似/相同?我需要每2秒运行一次代码来更新数组$newfiles=array\u slice($newfiles,-6,6,true);foreach($newfiles as&$newfile){if(!in_数组($newfile,$files,true)){array_push($files,$newfile);asort($files);reset($files);}
    <script type="text/javascript">
      setInterval(function(){ 
           $('#Request').load('Request.php'); 
      },  2000);

    </script>
    <div id="Request"> your html video container here </div>