<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/tutorial.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'de',
  ),
  'this' => 
  array (
    0 => 'tutorial.useful.php',
    1 => 'Etwas N&uuml;tzliches',
    2 => 'Etwas N&uuml;tzliches',
  ),
  'up' => 
  array (
    0 => 'tutorial.php',
    1 => 'Ein kleines Tutorial',
  ),
  'prev' => 
  array (
    0 => 'tutorial.firstpage.php',
    1 => 'Ihre erste PHP-erweiterte Seite',
  ),
  'next' => 
  array (
    0 => 'tutorial.forms.php',
    1 => 'Formulare verarbeiten',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'de',
    'path' => 'chapters/tutorial.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="tutorial.useful" class="section">
   <div class="info"><h1 class="title">Etwas Nützliches</h1></div>
   <p class="para">
    Kommen wir nun zu einem etwas nützlicheren Beispiel. Wir wollen prüfen,
    welchen Browser der Besucher verwendet. Um das zu tun, prüfen wir den
    &quot;user agent&quot;-String, den der Browser als Teil seiner HTTP-Anforderung
    sendet. Diese Information ist in einer
    <a href="language.variables.php" class="link">Variablen</a> abgelegt. In PHP
    beginnen Variablen immer mit einem Dollar-Zeichen. Die Variable, die uns
    jetzt interessiert, ist <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER['HTTP_USER_AGENT']</a></var>.
   </p>
   <blockquote class="note"><p><strong class="note">Hinweis</strong>: 
    <p class="para">
     <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER</a></var> ist eine speziell reservierte PHP-Variable,
     die alle Informationen über den Webserver enthält. Diese Variable wird
     auch als Superglobal bezeichnet. Mehr Informationen darüber finden Sie im
     Handbuch auf der Seite über
     <a href="language.variables.superglobals.php" class="link">Superglobals</a>.
    </p>
   </p></blockquote>
   <p class="para">
    Um die Variable auszugeben, schreiben Sie einfach:
   </p>
   <p class="para">
    <div class="example" id="example-1">
     <div class="info"><p><strong>Beispiel #1 Variable ausgeben (Array-Element)</strong></p></div>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">echo </span><span style="color: #0000BB">$_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'HTTP_USER_AGENT'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

     <div class="example-contents"><p>
      Die Ausgabe dieses Beispiels könnte so aussehen:
     </p></div>
     <div class="example-contents screen">
<div class="cdata"><pre>
Mozilla/5.0 (Linux) Firefox/112.0
</pre></div>
     </div>
    </div>
   </p>
   <p class="para">
    Es gibt viele <a href="language.types.php" class="link">Typen</a> von Variablen.
    Im obigen Beispiel haben wir ein Element einer
    <a href="language.types.array.php" class="link">Array</a>-Variable ausgegeben.
    Arrays können sehr nützlich sein.
   </p>
   <p class="para">
    <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER</a></var> ist nur eine von vielen Variablen, die Ihnen
    automatisch von PHP zur Verfügung gestellt werden. Eine Liste finden Sie
    auf der Seite
    <a href="reserved.variables.php" class="link">Reservierte Variablen</a> im
    Handbuch. Eine vollständige Liste können Sie auch bekommen, wenn Sie sich
    die Ausgabe der Funktion <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span> ansehen, die im
    Beispiel des vorigen Abschnitts verwendet wurde.
   </p>
   <p class="para">
    Sie können mehrere PHP-Anweisungen innerhalb eines PHP-Tags platzieren und
    so kleine Code-Blöcke schreiben, die mehr als nur eine Ausgabe mit
    <span class="function"><a href="function.echo.php" class="function">echo</a></span> enthalten. Wenn wir zum Beispiel prüfen möchten,
    ob es sich beim Browser des Besuchers um den Firefox handelt, können wir
    folgenden Code verwenden:
   </p>
   <p class="para">
    <div class="example" id="example-2">
     <div class="info"><p><strong>Beispiel #2 Beispiel, das
     <a href="language.control-structures.php" class="link">Kontrollstrukturen</a> und
     <a href="language.functions.php" class="link">Funktionen</a> verwendet</strong></p></div>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">str_contains</span><span style="color: #007700">(</span><span style="color: #0000BB">$_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'HTTP_USER_AGENT'</span><span style="color: #007700">], </span><span style="color: #DD0000">'Firefox'</span><span style="color: #007700">)) {<br />    echo </span><span style="color: #DD0000">'Sie verwenden Firefox.'</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

     <div class="example-contents"><p>
      Die Ausgabe dieses Skripts könnte so aussehen:
     </p></div>
     <div class="example-contents screen">
<div class="cdata"><pre>
Sie verwenden Firefox.
</pre></div>
     </div>
    </div>
   </p>
   <p class="para">
    Hier stellen wir Ihnen eine ganze Reihe von neuen Konzepten vor. Wir haben
    hier zuerst eine
    <a href="control-structures.if.php" class="link">if</a>-Anweisung. Wenn Sie mit der
    grundlegenden Syntax der Programmiersprache C vertraut sind, sollte Ihnen
    dies logisch erscheinen. Andernfalls sollten Sie sich ein Buch mit einer
    PHP-Einführung besorgen und die ersten Kapitel lesen. Sie können natürlich
    auch in die <a href="langref.php" class="link">Sprachreferenz</a> des Handbuchs
    schauen.
   </p>
   <p class="para">
    Das zweite hier vorgestellte Konzept ist der Aufruf der Funktion
    <span class="function"><a href="function.str-contains.php" class="function">str_contains()</a></span>. <span class="function"><a href="function.str-contains.php" class="function">str_contains()</a></span> ist
    eine in PHP eingebaute Funktion, die feststellt, ob eine gegebene
    Zeichenkette eine andere Zeichenkette enthält. In diesem Fall suchen wir
    nach <code class="literal">&#039;Firefox&#039;</code> (die so genannte Nadel, engl. needle) in
    <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER['HTTP_USER_AGENT']</a></var> (der so genannte Heuhaufen,
    engl. haystack). Wenn die Nadel im Heuhaufen gefunden wird, gibt die
    Funktion <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> zurück. Andernfalls wird <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> zurückgegeben. Wenn
    <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> zurückgeben wird, wird die
    <a href="control-structures.if.php" class="link">if</a>-Anweisung zu <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>
    ausgewertet und der Code innerhalb der geschweiften Klammern wird
    ausgeführt. Andernfalls wird der Code innerhalb der Klammern nicht
    ausgeführt. Probieren Sie weitere ähnliche Beispiele mit
    <a href="control-structures.if.php" class="link">if</a>,
    <a href="control-structures.else.php" class="link">else</a> und anderen Funktionen
    wie <span class="function"><a href="function.strtoupper.php" class="function">strtoupper()</a></span> oder <span class="function"><a href="function.strlen.php" class="function">strlen()</a></span>. Jede
    dieser Handbuch-Seiten enthält weitere Beispiele. Wenn Sie unsicher sind,
    wie die Funktionen verwendet werden, lesen Sie die Handbuch-Seite
    <a href="about.prototypes.php" class="link">Wie sind Funktionsdefinitionen (Prototypen) zu lesen?</a>
    und den Abschnitt zu den
    <a href="language.functions.php" class="link">PHP-Funktionen</a>.
   </p>
   <p class="para">
    Wir können jetzt einen Schritt weitergehen und sehen, wie Sie innerhalb
    eines PHP-Blocks den PHP-Modus verlassen und wieder in ihn hinein gelangen
    können:
   </p>
   <p class="para">
    <div class="example" id="example-3">
     <div class="info"><p><strong>Beispiel #3 HTML- und PHP-Modus vermischt</strong></p></div>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">if (</span><span style="color: #0000BB">str_contains</span><span style="color: #007700">(</span><span style="color: #0000BB">$_SERVER</span><span style="color: #007700">[</span><span style="color: #DD0000">'HTTP_USER_AGENT'</span><span style="color: #007700">], </span><span style="color: #DD0000">'Firefox'</span><span style="color: #007700">)) {<br /></span><span style="color: #0000BB">?&gt;<br /></span>&lt;h3&gt;str_contains() hat true zurückgegeben&lt;/h3&gt;<br />&lt;p&gt;Sie verwenden Firefox&lt;/p&gt;<br /><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">} else {<br /></span><span style="color: #0000BB">?&gt;<br /></span>&lt;h3&gt;str_contains() hat false zurückgegeben&lt;/h3&gt;<br />&lt;p&gt;Sie verwenden nicht Firefox&lt;/p&gt;<br /><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #007700">}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

     <div class="example-contents"><p>
      Die Ausgabe dieses Skripts könnte so aussehen:
     </p></div>
     <div class="example-contents screen">
<div class="cdata"><pre>
&lt;h3&gt;str_contains() hat true zurückgegeben&lt;/h3&gt;
&lt;p&gt;Sie verwenden Firefox&lt;/p&gt;
</pre></div>
     </div>
    </div>
   </p>
   <p class="para">
    Anstatt die PHP-Anweisung echo für die Ausgabe zu verwenden, haben wir den
    PHP-Modus verlassen und normales HTML verwendet. Der wichtige und
    entscheidende Punkt hierbei ist, dass der logische Ablauf des Skripts
    dadurch nicht gestört wird. Nur einer der beiden HTML-Blöcke wird
    ausgegeben - abhängig davon, was <span class="function"><a href="function.str-contains.php" class="function">str_contains()</a></span> zurückgibt
    bzw. ob die Zeichenkette <code class="literal">Firefox</code> gefunden wird oder nicht.
   </p>
  </div><?php manual_footer($setup); ?>