用PHP写一个功能把下面代码的当前在线人数和累次观看人数写成实时更新数据的 phpfunction sxcs$list = file_get_contentssxcsdat;$myfile = fopensxcsdat w;$sxcs = $list+1;fwrite$myfile$sxcs;fclose$myfile;return $sxcs;function slzxrs首先你要有读写文
可以使用Ajax实现实时更新数据。首先,在页面中添加一个定时器,每隔一段时间向服务器发送请求获取最新数据,然后更新页面显示。具体实现如下:
- 在页面中添加一个显示在线人数和观看人数的容器:
<div id="online-num">当前在线:0 人_ 累计观看人数:0 人</div>
- 在页面底部添加以下脚本:
<script>
// 定时器,每隔5秒钟更新一次数据
setInterval(function() {
$.ajax({
url: 'get_data.php',
type: 'get',
dataType: 'json',
success: function(data) {
// 更新页面显示
$('#online-num').html('当前在线:' + data.slzxrs + '人_ 累计观看人数:' + data.sxcs + '人');
}
});
}, 5000);
</script>
- 创建一个get_data.php文件,用来获取最新的数据并返回给前端:
<?php
function sxcs(){
$list = file_get_contents('sxcs.dat');
$myfile = fopen("sxcs.dat", "w");
$sxcs = ($list+1);
fwrite($myfile,"$sxcs");
fclose($myfile);
return $sxcs;
}
function slzxrs(){
$online_log = "slzxrs.dat";
$timeout = 30;
$entries = file($online_log);
$temp = array();
for ($i=0;$i<count($entries);$i++){
$entry = explode(",",trim($entries[$i]));
if(($entry[0] != getenv('REMOTE_ADDR')) && ($entry[1] > time())) {
array_push($temp,$entry[0].",".$entry[1]."\n");
}
}
array_push($temp,getenv('REMOTE_ADDR').",".(time() + ($timeout))."\n");
$slzxrs = count($temp);
$entries = implode("",$temp);
$fp = fopen($online_log,"w");
flock($fp,LOCK_EX);
fputs($fp,$entries);
flock($fp,LOCK_UN);
fclose($fp);
return $slzxrs;
}
// 返回最新的数据,以json格式返回
echo json_encode(array(
'sxcs' => sxcs(),
'slzxrs' => slzxrs()
));
?>
- 最后,记得引入jQuery库,否则Ajax请求无法正常发送和接收:
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
原文地址: https://www.cveoy.top/t/topic/b8ch 著作权归作者所有。请勿转载和采集!