Hallo
Hab ein großes Problem:
Ich öffne per popen oder proc_open ein Programm und möchte jetzt die Ausgabe einlesen (per fgets). An sich funktioniert das auch, ABER
Es ist so, dass das Programm alle 2 Sekunden eine Zeile ausgibt und ich möchte am liebsten, dass ich die Zeile sofort sehe, aber funktioniert komischerweise nicht!
gekürzter Aufbau des Programms:
also eigentlich recht simple, wüsste nicht wo da n fehler sein soll.
Also, wenn ich jetzt das Programm starte:
php canreceive.php
dann kommt sofort:
Start
Programm gestartet
Schleifenanfang
dann 15 Sekunden warten....
Dann kommt plötzlich mehrfach hintereinander
fgets
Schleifenanfang
fgets
usw.
und dann wieder 15 Sekunden Stille...
Er wartet also immer 15 Sekunden, ließt dann alles der letzten 15 Sekunden ein und wartet dann wieder 15 Sekunden!
Hierbei ist es übrigens egal, ob das Programm alle 2 Sekunden oder alle 30 Sekunden die Zeile ausgibt! Es sind immer 15 Sekunden!
Hat jemand n Rat?
Miles
Hab ein großes Problem:
Ich öffne per popen oder proc_open ein Programm und möchte jetzt die Ausgabe einlesen (per fgets). An sich funktioniert das auch, ABER
Es ist so, dass das Programm alle 2 Sekunden eine Zeile ausgibt und ich möchte am liebsten, dass ich die Zeile sofort sehe, aber funktioniert komischerweise nicht!
gekürzter Aufbau des Programms:
PHP:
$cmd="receivetest -t=usb -b=0x011c";
echo "Start\n";
$fp = popen($cmd,"r");
echo "Programm gestartet\n";
while (!feof($fp))
{
echo "Schleifenanfang\n";
$intext .= fgets($fp);
echo "fgets\n";
/* JETZT DIE VERARBEITUNG */
}
also eigentlich recht simple, wüsste nicht wo da n fehler sein soll.
Also, wenn ich jetzt das Programm starte:
php canreceive.php
dann kommt sofort:
Start
Programm gestartet
Schleifenanfang
dann 15 Sekunden warten....
Dann kommt plötzlich mehrfach hintereinander
fgets
Schleifenanfang
fgets
usw.
und dann wieder 15 Sekunden Stille...
Er wartet also immer 15 Sekunden, ließt dann alles der letzten 15 Sekunden ein und wartet dann wieder 15 Sekunden!
Hierbei ist es übrigens egal, ob das Programm alle 2 Sekunden oder alle 30 Sekunden die Zeile ausgibt! Es sind immer 15 Sekunden!
Hat jemand n Rat?
Miles