• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

Simpler Chatstream

ZAM

Inventar
Mitglied seit
28.09.1997
Beiträge
3.383
Reaktionspunkte
1.505
<?
/*
* ChatStream Klasse by Zam
* Quick & Dirty Code
*/
class ChatStream
{
/* Definitionen */
var $file;
var $running;

/* Klasseninitiierung
* Prüft ob das Stream-Datenbank-file existiert.
* Resettet die wichtigsten Variablen und weißt Werte zu
*/
function ChatStream($file = 'stream')
{
if(!@file_exists($file))
die(@sprintf('Streamfile not found: %s', $file));

$this->running = false;
unset($this->file);

$this->file = $file;
}

/*
* Diese Funktion styled den ausgelesenen Text je nach lust und Laune.
*/
function StyleStream($line) {
return @sprintf("%s<br>\n", $line);
}
/*
* Öffnen der Datenbank mit Rückgabe des Ergebnisses als Array();
*/
function filepointer() {
return @file($this->file);
}
/*
* Die Hauptfunktion
* Die im HTML Code versteckte Ausgabe des Wertes
* "<!-- Browser Bug //-->" ist notwendug da viele Browser bei
* inaktiven Streams die Verbindungsinformationen verlieren.
*/
function ShowStream()
{
$PingTime = 500;
$Ping = 0;

$this->running = true;

while($this->running)
{
$fp = $this->filepointer();
if(sizeof($fp)!=$nsize)
{
if ($Ping>0) { $Ping--; }
else {
$Ping = $PingTime;
echo "<!-- Browser Bug //-->\n";
flush();
}

$nfp = $this->filepointer();
$tline = @trim($nfp[sizeof($nfp)-1]);

if(!empty($tline))
{
$stream = $this->filepointer();

$nsize = @sizeof($stream);
$nline = @trim($stream[$nsize-1]);

echo $this->StyleStream($nline);
flush();

unset($stream, $nline, $tline);
}
}
usleep(100000);
}
}
}

Aufruf:

$stream = new ChatStream();
$stream->ShowStream();

Hinweis:
Es sollte vorher ein Template mit vollständigem HTML Kopf samt Body
Tag erstellt und ausgegeben werden. Zudem sollte darin bereits Content
bzw versteckter Content enthalten sein. Dies wird für einige Browser benötigt die
sonst zu wenig Daten erhalten.

Ausserdem ist dieser Stream leider nicht sehr ressourcenschonend da beinahe ein permanenter Zugriff auf eine Datei erfolgt. Und die Gefahr das Zeilen "geschluckt". werden besteht zudem auch.

Aber die Klasse dient als Grundbasis für einen Chatstream ohne Sockets für
alle Scriptkiddies mit durchschnittlichen Webspace und bietet einfachste Implemetationsmöglichkeiten auch für Substreams und Privat-Chats (Query).
Zudem ist das alles verdammt einfach und umfangreich erweiterbar.
Einsatzbeispiel: http://pcg.i-love-php-de

ps.: ich will endlich den
Code:
 Tag *g*
 
schoene sache. allerdings:
ZAM am 30.05.2005 13:48 schrieb:
echo $this->StyleLogStream($nline);
gibt es diese funktion nit.
und ausserdem scheint $this->fp auch nirgendwo benutzt zu werden, also warum ein
ZAM am 30.05.2005 13:48 schrieb:
unset($this->fp, $this->file);
?

ZAM am 30.05.2005 13:48 schrieb:
ps.: ich will endlich den
Code:
 Tag *g* [/quote]
ich auch...
 
Ich hatte es aus meinen Logging Funktionen herraus zusammen gestellt.
Habs grad korrigiert *g*
 
Mal ne Frage. Ich hab das ganze jetzt in ne php gepackt und auf den Server geworfen aber es kommt folgende Warnung :

Warning: Missing argument 1 for chatstream() in /usr/export/www/vhosts/funnetwork/hosting/traxer/chat/chat.php on line 16
File not found:

Muss ich vorher noch ne txt erstellen oder wie soll das funktionieren ?
Da ssoll zwra rehct einfach seina ber ich blicks trotzdem nicht %)
 
soulsaver am 02.06.2005 19:50 schrieb:
Mal ne Frage. Ich hab das ganze jetzt in ne php gepackt und auf den Server geworfen aber es kommt folgende Warnung :

Warning: Missing argument 1 for chatstream() in /usr/export/www/vhosts/funnetwork/hosting/traxer/chat/chat.php on line 16
File not found:

Muss ich vorher noch ne txt erstellen oder wie soll das funktionieren ?
Da ssoll zwra rehct einfach seina ber ich blicks trotzdem nicht %)


$chat = new Chatstream('datei mit dem textinhalten');

fehlt als default wert in der klasse

function Chatstream($file = 'xyz') {
}
 
ZAM am 06.06.2005 23:57 schrieb:
$chat = new Chatstream('chat.txt');

fehlt als default wert in der klasse

function Chatstream($file = 'chat.txt') {
}

Das habe ich jetzt mal eingesetzt, nur dann sagt er mir das der : nach Ausgabe falsch sei.
 
Hab keine Probleme mit dem Script
 
liegt wohl eher dran das ich das nicht verstehe und nicht weiß wie mand as einsetzt :-D
 
Zurück