PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : externe Programme


volksch
05.04.2002, 10:26:48
Hallo,

ich versuche externe Programme mit php unter IIS und WindowsNT auszuführen.

Die Programme werden auch ausgeführt. Leider kann ich die Ergebnisse der Programmausführung nicht in eine Variable schreiben.

Ich habe verschiedene Varianten der Ausführung versucht.

Backticks
exec
system

Leider alle mit dem gleichen Ergebnis.
Der Errorcode wird zwar in die Variablen geschrieben.
Aber die Ergebnisse die bei direkter Programmausführung auf der Konsole erscheinen, werden nicht umgeleitet.

Für Tips bin ich dankbar.

stoned
07.04.2002, 17:03:36
Hi Volksch,


Du könntest es mal so versuchen (habs selbst nicht ausprobiert):

$fp = popen("/bin/ls", "r");

# "/bin/ls" ist dein befehl


$rueckgabe["0"] = fgets($fp, 128);

# Die funktion fgets() holt eine zeile an rückgabewerten der
# durch popen() geöffneten verbindung.
# 128 ist die anzahl an bytes (zeichen), die zurückgeholt werden.
# Bei 2 zeilen, die zurückgegeben werden musst du also auch
# noch ein $rueckgabe["1"] = fgets($fp, 128) ausführen, ...


pclose($fp);

# Eine mit popen() geöffnete verbindung muss immer auch
# geschlossen werden.


Wenn du bei der funktion fgets() zuviele bytes angibst, hängt dein script, da fgets() immer genau auf die zeichenanzahl wartet, die du angibst.


mfg

stoned