Как я могу заставить эту функцию хвоста работать с СЕССИЯМИ? - PullRequest
0 голосов
/ 05 января 2012

Я пишу хвостовую функцию на PHP и использую jQuery для обновления области div любым содержимым из журнала.Я использую сеанс в PHP для хранения указателя файла, поэтому, когда функция в PHP вызывается снова, из setInterval (jQuery), она будет знать, где она остановилась, и печатать все, что является новым в конце файла.По какой-то причине, так как я начал использовать сеанс, я не могу видеть его в браузере, пока задача не будет завершена.Пожалуйста, помогите мне с этим.Спасибо!

Вот мой jQuery:

setInterval(function() {
    $.get("ajax.php?function=tail", function(data) {
        $("#tail").append(data);
    }, 'html');
}, 2000);

Вот мой PHP:

function tail() {
    $file = "/path/to/the/log/file.log";
    $handle = fopen($file, "r");

    if(isset($_SESSION['ftell'])) {   
        clearstatcache();
        fseek($handle, $_SESSION['ftell']); 

        while ($buffer = fgets($handle)) { 
            echo $buffer . "<br />";
        }   

        fclose($handle);
        $_SESSION['ftell'] = ftell($handle);        
    } else {
        fseek($handle, -1024, SEEK_END);
        $_SESSION['ftell'] = ftell($handle);
    }
}

1 Ответ

0 голосов
/ 05 января 2012

попробуйте прошить буфер после эха с http://php.net/manual/en/function.ob-flush.php

...