drews Wed Sep 5 06:31:12 2001 EDT Modified files: /phpdoc/de/functions exec.xml Log: finally finished this stuff ... yeah, i know, it took me a long way ... ;)
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 @@ +<?xml encoding="iso-8859-1"?> +<!-- $Revision: 1.7 $ --> + <reference id="ref.exec"> + <title>Funktionen zur Programmausführung</title> + <titleabbrev>Programmausführung</titleabbrev> + + <partintro> + <simpara> + 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 + <link linkend="language.operators.execution">Backtick-Operator</link>. + </simpara> + </partintro> + + <refentry id="function.escapeshellarg"> + <refnamediv> + <refname>escapeshellarg</refname> + <refpurpose>maskiert eine Zeichenkette (String), um sie als Shell-Argument + benutzen zu können</refpurpose> + </refnamediv> + <refsect1> + <title>Beschreibung</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>escapeshellarg</function></funcdef> + <paramdef>string <parameter>arg</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>escapeshellarg</function> 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 <function>exec</function>, <function>system</function> und den + <link linkend="language.operators.execution">backtick operator</link>. + Beispiel:</para> + <para> + <informalexample> + <programlisting role="php"> + system("ls ".escapeshellarg($dir)); + </programlisting> + </informalexample> + </para> + <para> + Siehe auch:<function>exec</function>, <function>popen</function>, + <function>system</function>, und den <link + linkend="language.operators.execution">Backtick Operator</link>. + </para> + + </refsect1> + </refentry> + + <refentry id="function.escapeshellcmd"> + <refnamediv> + <refname>escapeshellcmd</refname> + <refpurpose>maskiert Shell-Metazeichen</refpurpose> + </refnamediv> + <refsect1> + <title>Beschreibung</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>escapeshellcmd</function></funcdef> + <paramdef>string <parameter>befehl</parameter></paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>escapeshellcmd</function> 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 <function>exec</function>, <function>system</function> + oder dem <link linkend="language.operators.execution">Backtick Operator + </link> übergeben werden. Beispiel:</para> + <para> + <informalexample> + <programlisting role="php"> +$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 + </programlisting> + </informalexample> + </para> + <para> + Siehe auch: <function>escapeshellarg</function>, <function>exec</function>, + <function>popen</function>, <function>system</function>, und den <link + linkend="language.operators.execution">Backtick Operator</link>. + </para> + + </refsect1> + </refentry> + + <refentry id="function.exec"> + <refnamediv> + <refname>exec</refname> + <refpurpose>führt ein externes Programm aus</refpurpose> + </refnamediv> + <refsect1> + <title>Beschreibung</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>exec</function></funcdef> + <paramdef>string <parameter>befehl</parameter></paramdef> + <paramdef>string + <parameter><optional>array</optional> + </parameter> + </paramdef> + <paramdef>int + <parameter><optional>return_var</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + <function>exec</function> führt ein gegebenen <parameter>Befehl</parameter> + 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 <function>passthru</function>. + </para> + <para> + Ist der Parameter <parameter>array</parameter> angegeben, wird dieses + mit jeder Zeile des Befehlsausgabe gefüllt. Beachten Sie, dass wenn + das Array schon Elemente enthält, die Funktion <function>exec</function> + die Ausgabe an das Array anhängt. + Wenn Sie dieses nicht wünschen, rufen Sie die Funktion <function>unset + </function> für das Array auf, bevor Sie es als Parameter der Funktion + <function>exec</function> übergeben. + </para> + <para> + Ist der Parameter <parameter>return_var</parameter> angegeben, so wird + der Rückgabestatus des ausgeführten Befehls in diese Variable geschrieben. + </para> + <para> + Beachten Sie, dass wenn Sie Benutzereingaben an diese Funktion + übergeben, diese mit <function>escapeshellcmd</function> behandelt, um + sicherzustellen, dass niemand mit willkürlichen Befehlen Ihrem System + Schaden zufügen kann. + </para> + <para> + 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. + </para> + <para> + Siehe auch: <function>system</function>, + <function>passthru</function>, <function>popen</function>, + <function>escapeshellcmd</function>, und den <link + linkend="language.operators.execution">Backtick Operator</link>. + </para> + </refsect1> + </refentry> + + <refentry id="function.passthru"> + <refnamediv> + <refname>passthru</refname> + <refpurpose> + führt ein externes Programm aus und zeigt dessen Ausgabe an + </refpurpose> + </refnamediv> + <refsect1> + <title>Beschreibung</title> + <funcsynopsis> + <funcprototype> + <funcdef>void <function>passthru</function></funcdef> + <paramdef>string <parameter>befehl</parameter></paramdef> + <paramdef>int + <parameter><optional>return_var</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Die Funktion <function>passthru</function> ähnelt der Funktion + <function>exec</function>, da sie ebenfalls einen <parameter>Befehl + </parameter> ausführt. + Ist der Parameter <parameter>return_var</parameter> angegeben, wird + der Rückgabestatus des UNIX-Befehls hier abgelegt. Sie sollten diese + Funktion jedoch an Stelle von <function>exec</function> bzw. + <function>system</function> 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 + <emphasis>image/gif</emphasis> 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.</para> + <para> + 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. + </para> + <para> + Siehe auch: <function>exec</function>, <function>system</function>, + <function>popen</function>, <function>escapeshellcmd</function>, + und den <link linkend="language.operators.execution">Backtick + Operator</link>. + </para> + </refsect1> + </refentry> + + <refentry id="function.system"> + <refnamediv> + <refname>system</refname> + <refpurpose> + führt ein externes Programm aus und zeigt dessen Ausgabe an. + </refpurpose> + </refnamediv> + <refsect1> + <title>Beschreibung</title> + <funcsynopsis> + <funcprototype> + <funcdef>string <function>system</function></funcdef> + <paramdef>string <parameter>befehl</parameter></paramdef> + <paramdef>int + <parameter><optional>return_var</optional></parameter> + </paramdef> + </funcprototype> + </funcsynopsis> + <para> + Die Funktion <function>system</function> ähnelt der C Version der Funktion + sehr, indem es einen übergebenen <parameter>Befehl</parameter> 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. + </para> + <para> + Beachten Sie, dass wenn Sie Benutzereingaben an diese Funktion + übergeben, diese mit <function>escapeshellcmd</function> behandelt, um + sicherzustellen, dass niemand mit willkürlichen Befehlen Ihrem System + Schaden zufügen kann. + </para> + <para> + 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. + </para> + <para> + Die <function>system</function> Funktionsaufrufe versuchen übrigens + automatisch nach jeder Ausgabezeile den Ausgabebuffer des Webservers + zu flushen, wenn PHP als Servermodul läuft. + </para> + <para> + Gibt die letzte Zeile der Befehlsausgabe bei Erfolg, andernfalls &false; + zurück. + </para> + <para> + Wenn Sie auf die direkte Rückgabe/ Ausgabe eines Befehls angewiesen sind, + dann benutzen Sie stattdessen die Funktion <function>passthru</function>. + </para> + <para> + Siehe auch: <function>exec</function>, + <function>passthru</function>, <function>popen</function>, + <function>escapeshellcmd</function>, und den <link + linkend="language.operators.execution">Backtick Operator</link>. + </para> + </refsect1> + </refentry> + + </reference> + +<!-- Keep this comment at the end of the file +Local variables: +mode: sgml +sgml-omittag:t +sgml-shorttag:t +sgml-minimize-attributes:nil +sgml-always-quote-attributes:t +sgml-indent-step:1 +sgml-indent-data:t +sgml-parent-document:nil +sgml-default-dtd-file:"../../manual.ced" +sgml-exposed-tags:nil +sgml-local-catalogs:nil +sgml-local-ecat-files:nil +End: +-->