Самый простой подход - использовать функцию javascript, которая опрашивает скрипт php с помощью ajax - скажем, каждые 10 секунд. Вы можете добавить метку времени в качестве параметра в функцию php, чтобы она возвращала только самые последние записи журнала.
Когда возвращается вызов ajax, вы можете добавить полученный текст к текстовой области, используя javascript.
Я мог бы выловить пример кода, если хотите?
Итак, вот HTML-файл - он имеет функцию для вызова AJAX-скрипта - log.php, который возвращает некоторые вещи (в данном примере это очень простая строка текста), а затем добавляет это в текстовую область .
Когда скрипт загружается, мы устанавливаем таймер на срабатывание каждые 1000 миллисекунд (очевидно, измените это в соответствии с вашими потребностями).
У нас также есть функция «отмена обновлений» и «запуск обновлений».
Итак - поместите html-файл и php-файл (который вам нужно назвать log.php - или назовите его так, как вам нравится, и измените код) в один и тот же каталог на вашем веб-сервере и посмотрите, что произойдет!
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
var http = createRequestObject();
var updateInt=self.setInterval("updateLog()",1000);
function startAutoUpdate(){
if(updateInt==""){
updateInt=window.setInterval("updateLog()",1000)
}else{
stop_Int()
}
}
function stopAutoUpdate(){
if(updateInt!=""){
window.clearInterval(updateInt)
updateInt=""
}
}
function createRequestObject() {
var objAjax;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
objAjax = new ActiveXObject("Microsoft.XMLHTTP");
}else{
objAjax = new XMLHttpRequest();
}
return objAjax;
}
function updateLog(){
http.open('get','log.php');
http.onreadystatechange = updateNewContent;
http.send(null);
return false;
}
function updateNewContent(){
if(http.readyState == 4){
document.getElementById('log').innerHTML = document.getElementById('log').innerHTML + http.responseText;
}
}
</script>
</head>
<body>
<h2>Log</h2>
<textarea cols="80" rows="10" name="log" id="log"></textarea>
<span onclick="updateLog()">Update</span><br>
<span onclick="stopAutoUpdate()">Cancel Auto Update</span><br>
<span onclick="startAutoUpdate()">Start Auto Update</span><br>
</body>
</html>
Вот скрипт php (очень простой) ...
<?PHP
/* Log responder script
*
* When invoked this script returns log entries
* as this is a sample it just returns a couple of random items
*
*/
echo "Log Entry ".date("d/m/y h:i:s")."\n";
?>