Index: phpdoc/de/functions/exec.xml diff -u /dev/null phpdoc/de/functions/exec.xml:1.7 --- /dev/null Wed Sep 5 06:31:12 2001 +++ phpdoc/de/functions/exec.xml Wed Sep 5 06:31:12 2001 @@ -0,0 +1,286 @@ + + + + Funktionen zur Programmausführung + Programmausführung + + + + Diese Funktionen stellen Mittel und Wege zur Verfügung, Befehle und externe + Programme auf dem System selbst auszuführen und diese Ausführung sicher + durchzuführen. Diese Funktionen stehen in enger Beziehung zum + Backtick-Operator. + + + + + + escapeshellarg + maskiert eine Zeichenkette (String), um sie als Shell-Argument + benutzen zu können + + + Beschreibung + + + string escapeshellarg + string arg + + + + escapeshellarg fügt einfache Anführungszeichen um + eine Zeichenkette herum ein und maskiert alle existierenden einfachen + Anführungszeichen innerhalb der Zeichenkette. Dieses erlaubt es Ihnen, + eine Zeichenkette direkt an eine Shell-Funktion zu übergeben, so dass + diese als eine einzige, sichere Anweisung ausgeführt werden kann. + Die Funktion sollte verwendet werden, um Parameter, die aus Benutzereingaben + resultieren, an Shell-Funktionen zu übergeben. Die Shell-Funktionen + umfassen exec, system und den + backtick operator. + Beispiel: + + + + system("ls ".escapeshellarg($dir)); + + + + + Siehe auch:exec, popen, + system, und den Backtick Operator. + + + + + + + + escapeshellcmd + maskiert Shell-Metazeichen + + + Beschreibung + + + string escapeshellcmd + string befehl + + + + escapeshellcmd maskiert alle möglichen Zeichen in + einer Zeichenkette, die dazu benutzt werden könnten, um einen Shellbefehl + zur Durchführung von willkürlichen Befehlen zu veranlassen. Diese + Funktion sollte verwendet werden um sicherzustellen, dass alle Daten + aus einer Benutzereingabe maskiert werden bevor dieses Daten zu einer + der Funktionen exec, system + oder dem Backtick Operator + übergeben werden. Beispiel: + + + +$e = escapeshellcmd($userinput); +system("echo $e"); // hier ist es egal, ob $e Leerstellen hat +$f = escapeshellcmd($filename); +system("touch \"/tmp/$f\"; ls -l \"/tmp/$f\""); // hier ist es nicht egal + + + + + Siehe auch: escapeshellarg, exec, + popen, system, und den Backtick Operator. + + + + + + + + exec + führt ein externes Programm aus + + + Beschreibung + + + string exec + string befehl + string + array + + + int + return_var + + + + + exec führt ein gegebenen Befehl + aus, ohne eine Ausgabe zu erzeugen. Die Funktion gibt lediglich die + letzte Zeile aus dem Befehlsergebnis zurück. Wenn Sie auf die direkte + Rückgabe/ Ausgabe eines Befehls angewiesen sind, dann benutzen Sie + stattdessen die Funktion passthru. + + + Ist der Parameter array angegeben, wird dieses + mit jeder Zeile des Befehlsausgabe gefüllt. Beachten Sie, dass wenn + das Array schon Elemente enthält, die Funktion exec + die Ausgabe an das Array anhängt. + Wenn Sie dieses nicht wünschen, rufen Sie die Funktion unset + für das Array auf, bevor Sie es als Parameter der Funktion + exec übergeben. + + + Ist der Parameter return_var angegeben, so wird + der Rückgabestatus des ausgeführten Befehls in diese Variable geschrieben. + + + Beachten Sie, dass wenn Sie Benutzereingaben an diese Funktion + übergeben, diese mit escapeshellcmd behandelt, um + sicherzustellen, dass niemand mit willkürlichen Befehlen Ihrem System + Schaden zufügen kann. + + + Beachten Sie auch, dass wenn Sie ein Programm mit dieser Funktion + starten und Sie es im Hintergrund laufen lassen möchten, Sie + sicherstellen müssen, dass die Ausgabe des Programms in eine Datei + oder anderenen Ausgabestream umgeleitet wird. Andernfalls wird PHP + solange laufen, bis das Programm beendet ist. + + + Siehe auch: system, + passthru, popen, + escapeshellcmd, und den Backtick Operator. + + + + + + + passthru + + führt ein externes Programm aus und zeigt dessen Ausgabe an + + + + Beschreibung + + + void passthru + string befehl + int + return_var + + + + + Die Funktion passthru ähnelt der Funktion + exec, da sie ebenfalls einen Befehl + ausführt. + Ist der Parameter return_var angegeben, wird + der Rückgabestatus des UNIX-Befehls hier abgelegt. Sie sollten diese + Funktion jedoch an Stelle von exec bzw. + system benutzen, wenn es sich bei der Ausgabe + des Unix-Befehls um binäre Daten handelt, welche direkt zum Browser + zurückgeschickt werden müssen. + Ein praktisches Beispiel hierfür ist die Ausführung des pbmplus Utility, + welches direkt einen Bildstream ausgibt. Wenn Sie den Content-Type auf + image/gif setzen, und dann das pbmplus Program + aufrufen um ein GIF zu erzeugen, können Sie auf diesem Weg mittels PHP + direkt ein Bild erzeugen und es ausgeben. + + Beachten Sie, dass wenn Sie ein Programm mit dieser Funktion + starten und Sie es im Hintergrund laufen lassen möchten, Sie + sicherstellen müssen, dass die Ausgabe des Programms in eine Datei + oder anderenen Ausgabestream umgeleitet wird. Andernfalls wird PHP + solange laufen, bis das Programm beendet ist. + + + Siehe auch: exec, system, + popen, escapeshellcmd, + und den Backtick + Operator. + + + + + + + system + + führt ein externes Programm aus und zeigt dessen Ausgabe an. + + + + Beschreibung + + + string system + string befehl + int + return_var + + + + + Die Funktion system ähnelt der C Version der Funktion + sehr, indem es einen übergebenen Befehl ausführt + und dessen Ausgabe anzeigt. Wir als zweiter Parameter der Funktion eine + Variable übergeben, so wird der Rückgabestatus des Befehls in diese + geschrieben. + + + Beachten Sie, dass wenn Sie Benutzereingaben an diese Funktion + übergeben, diese mit escapeshellcmd behandelt, um + sicherzustellen, dass niemand mit willkürlichen Befehlen Ihrem System + Schaden zufügen kann. + + + Beachten Sie auch, dass wenn Sie ein Programm mit dieser Funktion + starten und Sie es im Hintergrund laufen lassen möchten, Sie + sicherstellen müssen, dass die Ausgabe des Programms in eine Datei + oder anderenen Ausgabestream umgeleitet wird. Andernfalls wird PHP + solange laufen, bis das Programm beendet ist. + + + Die system Funktionsaufrufe versuchen übrigens + automatisch nach jeder Ausgabezeile den Ausgabebuffer des Webservers + zu flushen, wenn PHP als Servermodul läuft. + + + Gibt die letzte Zeile der Befehlsausgabe bei Erfolg, andernfalls &false; + zurück. + + + Wenn Sie auf die direkte Rückgabe/ Ausgabe eines Befehls angewiesen sind, + dann benutzen Sie stattdessen die Funktion passthru. + + + Siehe auch: exec, + passthru, popen, + escapeshellcmd, und den Backtick Operator. + + + + + + +