[HELP]Log File auf Webseite anzeigen

06/08/2013 22:08 Thejokeman#1
Halli Hallo,

ich wollte, da ich und jemand es brauchen, eine Log Datei (noname.txt), auf der Webseite anzeigen lassen, die sich nach so und so vielen Sekunden aktualisiert.

Ist sowas möglich?

Beispiel:
Ich öffne Seite -> noname.de/logs und wähle die Logdatei die ich sehen möchte.

Nun erscheint eine leere Seite, auf der nur links oben folgendes aus der textdatei/log steht:

2013/ 6/ 7 21:14:24
[Log] Chat -> ja

2013/ 6/ 7 21:14:28
[Log] Chat -> ok

Nun wollte ich es, dass es automatisch aktualisiert wird, also ich öffne die Textdatei im Browser und sehe halt diese Logs, jetzt schreib jemand beispielsweise bei einem Spiel im Chat: "Hallo"
Nun soll sich die Datei im Browser aktualisieren und folgendes erscheint:

2013/ 6/ 7 21:14:24
[Log] Chat -> ja

2013/ 6/ 7 21:14:28
[Log] Chat -> ok

2013/ 6/ 7 21:19:42
[Log] Chat -> Hallo


Hoffe ihr könnt mir dabei helfen, ich kenne mich nicht mit HTML/PHP bzw. kaum aus und bräuchte deshalb vorlagen oder so.

Danke!
06/08/2013 22:59 Ic3dL0tus#2
Jein, eine Logdatei also eine .log kannst du nicht Automatisch vom Server akrualisieren lassen. Du kannst höchstens mit einem PHP Script eine HTML Seite bei jedem aufruf neu generieren lassen die die den Inhalt der Log Datei beinhaltet. Diese kann dann noch eine Umleitung auf sich selbst haben die nach z.B. 5 Sekunden aktiviert wir, das geht dann mit HTML PHP oder JavaScript.
06/08/2013 23:12 マルコ#3
Ja, natürlich ist das möglich. Mit JS.
Am einfachsten, du benutzt hierfür window.setTimeout() . Und dann lässt du die Seite neu laden.
Oder du machst eine etwas kompliziertere Lösung mit AJAX.
06/08/2013 23:13 BattleTale#4
Einfach aber nicht die beste methode:: mit dem meta-tag die seite alle 5sek neuladen.
06/08/2013 23:25 johhnyxD#5
Quote:
Originally Posted by マルコ View Post
Ja, natürlich ist das möglich. Mit JS.
Am einfachsten, du benutzt hierfür window.setTimeout() . Und dann lässt du die Seite neu laden.
Oder du machst eine etwas kompliziertere Lösung mit AJAX.
die ajax methode:
Code:
<script type="text/javascript">
    function loadLog()
    {
        var xmlhttp;
        xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function()
        {
            if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
            {
                document.getElementById("log").innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET", "test.php#foot", true);
        xmlhttp.send();
        scrollBy(100,100);
        window.setTimeout("loadLog()", 5000);
    }
    window.onload = loadLog;
</script>
<div id="log">
    <?php
    $handle = fopen("log.txt", "r");
    while(feof($handle) == false)
    {
        $content = fread($handle, 1024);
    }
    echo $content;
    ?>
</div>
<a id="foot"></a>
in dem fall würde das skript die datei "log.txt" alle 5 sekunden neu einlesen und den inhalt in das div mit der id "log" schreiben