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:
+-->

Reply via email to