svn: /phpdoc/de/trunk/language/control-structures/ include.xml

[email protected] (Raphael Michel)
Newsgroups php.doc.de
Message-ID <[email protected]>
raphaelm                                 Mon, 24 May 2010 15:47:19 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=299696

Log:
include documentation translated

Changed paths:
    A   phpdoc/de/trunk/language/control-structures/include.xml
svn-diffs-299696.txt (text/x-diff, 11.5 KB)
Added: phpdoc/de/trunk/language/control-structures/include.xml
===================================================================
--- phpdoc/de/trunk/language/control-structures/include.xml	                        (rev 0)
+++ phpdoc/de/trunk/language/control-structures/include.xml	2010-05-24 15:47:19 UTC (rev 299696)
@@ -0,0 +1,338 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- $Revision: 288721 $ -->
+<!-- EN-Revision: 288721 Maintainer: raphaelm Status: ready -->
+
+<sect1 xml:id="function.include" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
+ <title><function>include</function></title>
+ <simpara>
+  <function>include</function> bindet eine angegebene Datei ein und
+  führt sie aus.
+ </simpara>
+ <simpara>
+  Die folgende Dokumentation trifft ebenfalls auf <function>require</function>
+  zu.
+ </simpara>
+ <simpara>
+  Dateien werden unter dem angegebenen Pfad gesucht, oder, wenn keiner
+  gegeben ist, im <link linkend="ini.include-path">include_path</link>.
+  Wenn keine Datei gefunden wurde, erzeugt <function>include</function>
+  eine <link linkend="errorfunc.constants.errorlevels.e-warning">Warnung</link>,
+  im Gegensatz dazu erzeugt <function>require</function> in diesem Fall einen
+  <link linkend="errorfunc.constants.errorlevels.e-error">Fatal Error</link>.
+ </simpara>
+ <simpara>
+  Wenn ein Pfad angegeben ist (absolut oder relativ), wird der
+  <link linkend="ini.include-path">include_path</link> ignoriert. Wenn der
+  Dateiname beispielsweise mit <literal>../</literal> befinnt, sucht der
+  Parser im übergeordneten Verzeichnis des aktuellen Arbeitsverzeichnisses
+  nach der Datei.
+ </simpara>
+ <simpara>
+  Mehr Informationen über den Umgang PHPs mit dem Einbinden von Dateien
+  im Zusammenhang mit dem include_path, siehe die Dokumentation zu
+  <link linkend="ini.include-path">include_path</link>.
+ </simpara>
+ <simpara>
+  Wenn eine Datei eingebunden wird, wird für den enthaltenen Code der gleiche
+  <link linkend="language.variables.scope">Geltungsbereich</link> für
+  Variablen übernommen, der für die Zeile gilt, die den include-Befehl
+  aufruft. Jede für diese Zeile verfügbare Variable ist in dem eingebundenen
+  Code verfügbar und jede Variable, die in der eingebundenen Datei gesetzt wird,
+  steht dem weiteren aufrufenden Skript zur Verfügung, als wäre sie in der
+  Zeile, in der include aufgerufen wird, definiert worden.
+  Alle Funktionen und Klassen in der eingebundenen Datei gehören zum globalen
+  Geltungsbereich.
+ </simpara>
+ <para>
+  <example>
+   <title>Grundlegendes <function>include</function>-Beispiel</title>
+   <programlisting role="php">
+<![CDATA[
+vars.php
+<?php
+
+$farbe = 'grün';
+$frucht = 'Apfel';
+
+?>
+
+test.php
+<?php
+
+echo "Der $frucht ist $farbe."; // Der  ist s .
+
+include 'vars.php';
+
+echo "Der $frucht ist $farbe"; // Der Apfel ist grün
+
+?>
+]]>
+   </programlisting>
+  </example>
+ </para>
+ <simpara>
+  Wenn include innerhalb einer Funktion aufgerufen wird, verhält sich der
+  gesamte Code aus der aufgerufenen Datei wie wenn er in der Funktion stände.
+  Folglich hat er den selbern Variablen-Gültigkeitsbereich wie diese
+  Funktion.
+  Eine Ausname von dieser Regel sind <link
+  linkend="language.constants.predefined">Magische Konstanten</link>,
+  die geparst werden, bevor die Einbindung durchgeführt wird.
+ </simpara>
+ <para>
+  <example>
+   <title>Include in Funktionen</title>
+   <programlisting role="php">
+<![CDATA[
+<?php
+
+function foo()
+{
+    global $farbe;
+
+    include 'vars.php';
+
+    echo "Der $frucht ist $farbe.";
+}
+
+/* vars.php ist im Gültigkeitsbereich von foo(),  *
+ * sodass $frucht außerhalb von diesem Bereich    *
+ * nicht verfügbar ist. $farbe ist auch außerhalb *
+ * verfügbar, weil es als global deklariert ist.  */
+
+foo();                            // Der Apfel ist grün.
+echo "Der $frucht ist $farbe.";   // Der  ist grün.
+
+?>
+]]>
+   </programlisting>
+  </example>
+ </para>
+ <simpara>
+  Wenn eine Datei eingebunden wird, wechselt der Parser am Anfang
+  der eingebundenen Datei in den HTML-Modus und am Ende wieder in
+  den PHP-Modus. Aus diesem Grund muss jeder PHP-Code in der eingebundenen
+  Datei mit <link linkend="language.basic-syntax.phpmode">gültigen PHP
+  Start- und Endtags</link> umschlossen sein.
+ </simpara>
+ <simpara>
+  Wenn "<link linkend="ini.allow-url-fopen">fopen-URL-Wrapper</link>"
+  aktiviert sind (was sie in der Standard-Konfiguration sind), kann die
+  einzubindende Datei mit einer URL (über HTTP oder ein anderes unterstütztes
+  Protokoll - siehe <xref linkend="wrappers"/> für eine Liste unterstützter
+  Protokolle) anstall einem lokalen Pfad eingebunden werden. Wenn der
+  Zielserver die Zieldatei als PHP-Code interpretiert, können Variablen
+  an die einzubindende Datei mithilfe von HTTP-GET-Query-Strings übergeben
+  werden, obwohl dies nicht das selbe ist, wie wenn man die Datei einbindet
+  und sie den Variablenbereich übernimmt; das Skript läuft weiterhin auf dem
+  entfernten Server und das Ergebnis wird in das lokale Skript eingebunden.
+ </simpara>
+ &warn.no-win32-fopen-wrapper;
+ <para>
+  <example>
+   <title><function>include</function> über HTTP</title>
+   <programlisting role="php">
+<![CDATA[
+<?php
+
+/* Dieses Beispiel setzt vorraus, dass www.example.com konfiguriert ist *
+ * .php-Dateien als PHP-Skripte zu interpretieren und .txt-Dateien      *
+ * nicht. Desweiteren meint 'Funktioniert' hier, dass die Variablen     *
+ * $foo und $bar innerhalb der eingebundenen Datei verfügbar sind       */
+
+// Funktioniert nicht; file.txt wird von www.example.com nicht als PHP interpretiert
+include 'http://www.example.com/file.txt?foo=1&bar=2';
+
+// Funktioniert nicht; hier wird nach einer Datei mit dem Namen
+// 'file.php?foo=1&bar=2' im lokalen Dateisystem gesucht.
+include 'file.php?foo=1&bar=2';
+
+// Funktioniert
+include 'http://www.example.com/file.php?foo=1&bar=2';
+
+$foo = 1;
+$bar = 2;
+include 'file.txt';  // Funktioniert
+include 'file.php';  // Funktioniert
+
+?>
+]]>
+   </programlisting>
+  </example>
+ </para>
+ <warning>
+  <title>Sicherheits-Warnung</title>
+  <para>
+   Die entfernte Datei mag vom entfernten Server (je nach Konfiguration)
+   geparst werden oder nicht, aber sie muss weiterhin ein gültiges
+   PHP-Skript ausgeben, weil die Ausgabe auf dem lokalen Server als PHP
+   ausgeführt wird. Wenn die Ausgabe des vom entfernten Server nur
+   ausgegeben werden soll, ist <function>readfile</function> die bessere
+   Wahl. Andernfalls muss sehr gut acht gegeben werden, dass das entfernte
+   Skript sicher gültigen und erwünschten Code ausgibt!
+  </para>
+ </warning>
+ <para>
+  Siehe auch  <link linkend="features.remote-files">Entfernte Dateien</link>,
+  <function>fopen</function> und <function>file</function> für verwandte
+  Informationen.
+ </para>
+ <simpara>
+  Umgang mit Rückgabewerten: Es ist möglich, in der eingebundenen Datei
+  <function>return</function> aufzurufen um den Ablauf dieser Datei
+  abzubrechen und zu dem einbindenden Skript zurückzukehren. Der
+  zurückgegebene Wert kann als Rückgabewert des include-Aufrufs abgefragt
+  werden, wie bei einer normalen Funktion. Dies ist beim Einbinden
+  entfernter Dateien nur möglich, wenn die entfernte Datei mit
+  <link linkend="language.basic-syntax.phpmode">gültigen PHP Start- und Endtags</link>
+  umschlossen ist (wie bei jeder lokalen Datei). Es ist möglich, die
+  benötigten Variablen innerhalb diese Tags zu deklarieren und sie werden
+  im einzubindenden Skript am dem Punkt, an dem die Datei eingebunden wird,
+  verfügbar.
+ </simpara>
+ <para>
+  Weil <function>include</function> eine spezielles Sprachkonstrukt ist,
+  sind die Klammern um das Argument optional. Beim vergleichen des
+  Rückgabewerts muss allerdings aufgepasst werden (siehe Beispiel).
+  <example>
+   <title>Comparing return value of include</title>
+   <programlisting role="php">
+<![CDATA[
+<?php
+// funktioniert nicht, wird als include(('vars.php') == 'OK') behandelt
+// also als include('')
+if (include('vars.php') == 'OK') {
+    echo 'OK';
+}
+
+// Funktioniert
+if ((include 'vars.php') == 'OK') {
+    echo 'OK';
+}
+?>
+]]>
+   </programlisting>
+  </example>
+ </para>
+ <para>
+  <example>
+   <title><function>include</function> und <function>return</function></title>
+   <programlisting role="php">
+<![CDATA[
+return.php
+<?php
+
+$var = 'PHP';
+
+return $var;
+
+?>
+
+noreturn.php
+<?php
+
+$var = 'PHP';
+
+?>
+
+testreturns.php
+<?php
+
+$foo = include 'return.php';
+
+echo $foo; // gibt 'PHP' aus
+
+$bar = include 'noreturn.php';
+
+echo $bar; // gibt 1 aus
+
+?>
+]]>
+   </programlisting>
+  </example>
+ </para>
+ <simpara>
+  <literal>$bar</literal> hat den Wert <literal>1</literal> weil das Einbinden
+  erfolgreich war. Die erste Datei nutzt <function>return</function>,
+  was die andere nicht tut. Wenn das Einbinden fehlschlägt, wird &false;
+  zurückgegeben und ein Fehler der Kategorie <constant>E_WARNING</constant>
+  erzeugt.
+ </simpara>
+ <para>
+  Wenn in der eingebundenen Datei Funktionen definiert werden, können sie
+  in der einbindenden Datei genutzt werden, unabhängig davon, ob sie vor
+  oder nach <function>return</function> definiert werden. Wenn eine Datei
+  zweimal eingebunden wird, erzeugt PHP 5 einen fatalen Fehler weil
+  Funktionen bereits definiert wurden, während PHP 4 Funktionen, die nach
+  <function>return</function> definiert werden, ignoriert.
+  Es ist empfohlen, <function>include_once</function> zu nutzen anstatt
+  zu überprüfen ob die Datei bereits eingebunden wurde und abhängig davon
+  innerhalb der eingebundenen Datei zu handeln.
+ </para>
+ <simpara>
+  Ein anderer Weg, die Ausgabe eines eingebundenen Skriptes in eine
+  Variable zu schreiben, ist das Arbeiten mit den
+  <link linkend="ref.outcontrol">Funktionen zur Steuerung des Ausgabepuffers</link>.
+  Beispiel:
+ </simpara>
+ <para>
+  <example>
+   <title>Nutzung des Ausgabepuffers um eine Datei "in einen String" einzubinden</title>
+   <programlisting role="php">
+<![CDATA[
+<?php
+$string = get_include_contents('somefile.php');
+
+function get_include_contents($filename) {
+    if (is_file($filename)) {
+        ob_start();
+        include $filename;
+        $contents = ob_get_contents();
+        ob_end_clean();
+        return $contents;
+    }
+    return false;
+}
+
+?>
+]]>
+   </programlisting>
+  </example>
+ </para>
+ <para>
+  Um automatisch Dateien in Skripte einzubinden, siehe auch die Konfigurationsdirektiven
+  <link linkend="ini.auto-prepend-file">auto_prepend_file</link> und
+  <link linkend="ini.auto-append-file">auto_append_file</link>
+  in &php.ini;.
+ </para>
+
+ &note.language-construct;
+
+ <simpara>
+  Siehe auch <function>require</function>, <function>require_once</function>,
+  <function>include_once</function>, <function>get_included_files</function>,
+  <function>readfile</function>, <function>virtual</function>, und
+  <link linkend="ini.include-path">include_path</link>.
+ </simpara>
+</sect1>
+
+<!-- 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
+indent-tabs-mode:nil
+sgml-parent-document:nil
+sgml-default-dtd-file:"~/.phpdoc/manual.ced"
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+vim600: syn=xml fen fdm=syntax fdl=2 si
+vim: et tw=78 syn=sgml
+vi: ts=1 sw=1
+-->


Property changes on: phpdoc/de/trunk/language/control-structures/include.xml
___________________________________________________________________
Added: svn:executable
   + *
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.