gpt4 book ai didi

php - 更新文件的实时提要

转载 作者:可可西里 更新时间:2023-11-01 00:51:02 25 4
gpt4 key购买 nike

我有一个 php 文件,它打印一个 txt 文件的最后 50 行。但是,此文件每秒都会附加一次,并希望查看该操作的“实时提要”。如何才能做到这一点?这是 php 文件的代码:

<?php
$filename = '/home/duke/aa/servers/df/var/logs.log'; //about 500MB
$output = shell_exec('exec tail -n50 ' . $filename); //only print last 50 lines
echo str_replace(PHP_EOL, '<br />', $output); //add newlines
?>

最佳答案

使用 Ajax 。如果您需要跨浏览器兼容性,请用 jQuery 等库中的一个替换我提供的 AJAX 函数.

<html><head></head><body>
<div id="feed"></div>
<script type="text/javascript">
var refreshtime=10;
function tc()
{
asyncAjax("GET","myphpfile.php",Math.random(),display,{});
setTimeout(tc,refreshtime);
}
function display(xhr,cdat)
{
if(xhr.readyState==4 && xhr.status==200)
{
document.getElementById("feed").innerHTML=xhr.responseText;
}
}
function asyncAjax(method,url,qs,callback,callbackData)
{
var xmlhttp=new XMLHttpRequest();
//xmlhttp.cdat=callbackData;
if(method=="GET")
{
url+="?"+qs;
}
var cb=callback;
callback=function()
{
var xhr=xmlhttp;
//xhr.cdat=callbackData;
var cdat2=callbackData;
cb(xhr,cdat2);
return;
}
xmlhttp.open(method,url,true);
xmlhttp.onreadystatechange=callback;
if(method=="POST"){
xmlhttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xmlhttp.send(qs);
}
else
{
xmlhttp.send(null);
}
}
tc();
</script>
</body></html>

您必须创建一个名为 myphpfile.php 的 php 文件(或更改上面的代码以引用正确的文件)并将以下内容放入其中(从您的问题中提取):

<?php
$filename = '/home/duke/aa/servers/df/var/logs.log'; //about 500MB
$output = shell_exec('exec tail -n50 ' . $filename); //only print last 50 lines
echo str_replace(PHP_EOL, '<br />', $output); //add newlines
?>

关于php - 更新文件的实时提要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7290515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com