Datei "einstreamen"
Kurt
- php
Hallo Leute,
brauche mal eine kleine Anregung von euch. Ist es in PHP irgendwie möglich eine Datei permanent zu lesen die von anderen Dateien beschrieben wird. Das PHP-script, als so eine Art Pseudodaemon, sollte die neue Zeile einlesen und verarbeiten können, so als würde es ein "tail -f" ausführen. Ist so etwas möglich ohne das Script immer wieder oder in einer "ewigen" schleife zu starten. Würde mich da für eure Ansätze bedanken.
Der Kurt
Hello,
brauche mal eine kleine Anregung von euch. Ist es in PHP irgendwie möglich eine Datei permanent zu lesen die von anderen Dateien beschrieben wird. Das PHP-script, als so eine Art Pseudodaemon, sollte die neue Zeile einlesen und verarbeiten können, so als würde es ein "tail -f" ausführen. Ist so etwas möglich ohne das Script immer wieder oder in einer "ewigen" schleife zu starten. Würde mich da für eure Ansätze bedanken.
Hast Du denn mal ausprobiert, im Script eine "ewige Schleife" laufen zu lassen?
Datei öffnen -> $fh
Laufbedinung abfragen, z.B. Existenz einer Dummy-Datei
while(laufbedinung())
{
if(!$feof($fh))
{
echo fread($fh, 128);
}
}
Harzliche Grüße vom Berg und Frohe Weihnachtszeit
Tom
Hello,
hab noch was vergessen
Hast Du denn mal ausprobiert, im Script eine "ewige Schleife" laufen zu lassen?
Datei öffnen -> $fh
Laufbedinung abfragen, z.B. Existenz einer Dummy-Dateiwhile(laufbedinung())
{
if(!$feof($fh))
{
echo fread($fh, 128);
}
usleep(500); ### damit noch Ressourcen für Andere übrig blieben
}
Harzliche Grüße vom Berg und Frohe Weihnachtszeit
Tom
Hallo,
mit der ewigkeit das ist so ne sache...
ich hab erstmal dies probiert:
tail -f /meine/datei | ./lesetest.php
dies könnte man als pseudodämon laufen lassen und kontrollieren ob aktiv.
Inhalt der lesetest.php ist:
(stammt aus einer faq-seite zu procmail die ich gefunden hab)
#! /usr/bin/php -q
<?
$stdin = fopen("php://stdin","r");
while (!feof($stdin)) {
$buffer = fgets($stdin, 4096);
echo $buffer;
}
fclose($stdin);
?>
funktioniert erstmal. mal überlegen ob das was taugt.
Danke Kurt