template

Index :: PHP/MySQL :: Webserver: Prozess öffnen/schließen

Mit dieser Funktion können webserver-lokale Programme/Prozesse gestartet werden; auch solche, die ausserhalb des Webpfades liegen:

int popen(string command, string mode)
Es ist darauf zu achten, den geöffneten Prozess mit pclose() wieder zu schließen.
Bei länger laufenden Prozessen muss evtl. die Zeitlimitierung - i.d.R. 30 Sekunden - des Skripts mittels set_time_limit(0) abgeschaltet werden.
Ausgaben, die an die Konsole gesendet werden, setzen einen Teletype-Font voraus und enthalten (zur Spaltenformatierung) oft Füll-Blanks. Um eine getreue Darstellung in HTML zu erreichen, sollte PHP die gelesenen Daten entweder in einem <PRE>-Block oder einer <TEXTAREA> ausgeben.
Siehe auch: escapeshellarg(), escapeshellcmd(), exec(), passthru(), proc_open(), shell_exec() und system().

Beispiel unter Linux:
Verzeichnisinhalt auflisten
if ($ph = popen("/bin/ls", "r")) { while(!feof($ph)) echo htmlentities(fgets($ph, 300)), "<br>"; pclose($ph); }
Shellskript ausführen
if ($ph = popen("blabla.sh", "r")) { while(!feof($ph)) echo htmlentities(fgets($ph, 300)), "<br>"; pclose($ph); }
Beispiel unter Windows:
Verzeichnisinhalt auflisten
if ($ph = popen("dir /a /w", "r")) { while(!feof($ph)) echo htmlentities(fgets($ph, 300)), "<br>"; pclose($ph); }

Index :: PHP/MySQL


template