Intereting Posts

Прямая передача файла обновления

У меня есть php-файл, который печатает последние 50 строк txt-файла. Тем не менее, этот файл добавляется каждый раз и хочет просмотреть «живой канал» действия. Как это может быть сделано? Это код для файла 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 .

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

Вам нужно будет создать php-файл с именем myphpfile.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, Эффективное чтение последних строк в PHP

http://mydebian.blogdns.org/?p=197

или

если хвост установлен на сервере, быстро

 $logfile = '/home/duke/aa/servers/df/var/logs.log'; $numlines = "50"; $cmd = “tail -$numlines '$logfile'”; $output = shell_exec($cmd); echo $output;