微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 更新文件的实时订阅源

我有一个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.如果您需要跨浏览器兼容性,请将我提供的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.PHPPHP文件(或更改上面的代码以引用正确的文件)并在其中添加以下内容(从您的问题中获取):

<?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
?>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐