php每2秒更新一次数组
我有一个动态文件文件夹,每2秒就有一个新文件 我想每2秒钟检查一次是否有新文件 如果有新文件,请将它们添加到数组中 每个文件大小约为1m 我开始获取文件,然后开始读取一个又一个文件, 我需要在读取文件时更新数组,并在浏览器关闭时继续读取和更新 我用那个密码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 &$
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>
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>