<?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 => 'fr',
  ),
  'this' => 
  array (
    0 => 'tutorial.useful.php',
    1 => 'Trucs pratiques',
    2 => 'Trucs pratiques',
  ),
  'up' => 
  array (
    0 => 'tutorial.php',
    1 => 'Une introduction &agrave; PHP',
  ),
  'prev' => 
  array (
    0 => 'tutorial.firstpage.php',
    1 => 'La premi&egrave;re page PHP',
  ),
  'next' => 
  array (
    0 => 'tutorial.forms.php',
    1 => 'Utiliser un formulaire',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    '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">Trucs pratiques</h1></div>
   <p class="para">
    Réalisons maintenant quelque chose de plus puissant. Nous allons
    vérifier le type de navigateur que le visiteur de notre site utilise.
    Pour cela, nous allons accéder aux informations que le navigateur
    du visiteur nous envoie, lors de sa requête HTTP. Cette information
    est stockée dans une <a href="language.variables.php" class="link">variable</a>.
    Les variables sont faciles à repérer, car elles commencent toutes par
    un signe dollar. La variable qui nous intéresse ici est
    <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">Note</strong>: 
    <p class="para">
     <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER</a></var> est une
     variable spéciale de PHP, qui contient toutes les informations
     relatives au serveur web. C&#039;est une variable réservée de PHP,
     et une superglobale. Se reporter aux pages du manuel traitant des
     <a href="language.variables.superglobals.php" class="link">Auto-globales</a>
     (aussi connues sous le nom de super-globales).
    </p>
   </p></blockquote>
   <p class="para">
    Pour afficher cette variable, nous pouvons simplement faire :
   </p>
   <p class="para">
    <div class="example" id="example-1">
    <div class="info"><p><strong>Exemple #1 Afficher le contenu d&#039;une variable (élément de tableau)</strong></p></div>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><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 /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

    <div class="example-contents"><p>
     Un résultat possible du script pourra alors être :
    </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">
    Il y a de nombreux <a href="language.types.php" class="link">types</a> de
    variables disponibles en PHP. Dans l&#039;exemple ci-dessus, nous avons affiché
    un élément d&#039;une variable <a href="language.types.array.php" class="link">Tableau (Array)</a>.
    Les tableaux peuvent être très utiles.
   </p>
   <p class="para">
    <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER</a></var> est juste une variable qui est automatiquement
    disponible dans le script. Une liste de toutes les variables qui sont
    rendues disponibles est fournie dans la section
    <a href="reserved.variables.php" class="link">Variables réservées</a> ; il est
    également possible d&#039;en obtenir une liste complète en lisant l&#039;affichage de la fonction
    <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span> utilisée dans l&#039;exemple de la section précédente.
   </p>
   <p class="para">
    Il est possible d&#039;ajouter plusieurs commandes PHP dans une balise PHP, et créer
    de petits blocs de code qui réalisent des opérations plus complexes
    qu&#039;un simple affichage. Par exemple, si nous voulons vérifier que le
    navigateur est bien de la famille Firefox, nous pouvons
    faire cela :
   </p>
   <p class="para">
    <div class="example" id="example-2">
     <div class="info"><p><strong>Exemple #2 Exemple utilisant les
     <a href="language.control-structures.php" class="link">structures de contrôle</a> et
     les <a href="language.functions.php" class="link">fonctions</a></strong></p></div>
     <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /><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">'Vous utilisez Firefox.'</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

     <div class="example-contents"><p>
      Le résultat de ce script, avec Firefox, sera :
     </p></div>
     <div class="example-contents screen">
<div class="cdata"><pre>
Vous utilisez Firefox.
</pre></div>
     </div>
    </div>
   </p>
   <p class="para">
    Ici, nous introduisons plusieurs nouveaux concepts. Nous avons une
    structure <a href="control-structures.if.php" class="link">if</a>.
    Les personnes familières avec les syntaxes de base du langage C ne seront
    pas surprises. Dans le cas contraire, il est recommandé de lire une
    introduction à PHP et d&#039;assimiler les premiers chapitres, ou bien
    de consulter le chapitre consacré à
    <a href="langref.php" class="link">la référence du langage</a>.
   </p>
   <p class="para">
    Le second concept que nous avons introduit est la fonction <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> est une fonction intégrée à PHP, qui détermine
    la présence d&#039;une chaîne donnée dans une autre. Dans notre cas, nous
    avons recherché la chaîne <code class="literal">&quot;Firefox&quot;</code> (appelée needle)
    dans <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER['HTTP_USER_AGENT']</a></var> (appelée haystack).
    Si la chaîne recherchée est trouvée, la fonction retourne <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>. Sinon, elle retourne <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
    Si elle retourne <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong>, la structure <a href="control-structures.if.php" class="link">if</a>
    reçoit <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> et le code entre accolades {} est exécuté. Sinon, le code n&#039;est pas
    exécuté. Il est recommandé d&#039;expérimenter d&#039;autres exemples, à l&#039;aide de
    <a href="control-structures.if.php" class="link">if</a>,
    <a href="control-structures.else.php" class="link">else</a>, et d&#039;autres
    fonctions comme <span class="function"><a href="function.strtoupper.php" class="function">strtoupper()</a></span> et
    <span class="function"><a href="function.strlen.php" class="function">strlen()</a></span>. Chaque page de la documentation contient aussi
    des exemples. En cas de doute sur l&#039;utilisation de ces fonctions, il est recommandé de lire
    la page du manuel
    &quot;<a href="about.prototypes.php" class="link">comment lire une définition de fonction</a>&quot;
    ainsi que la <a href="language.functions.php" class="link">section sur les fonctions PHP</a>.
   </p>
   <p class="para">
    Il est maintenant possible de progresser et de montrer comment utiliser le mode PHP,
    au milieu du code HTML :
   </p>
   <p class="para">
    <div class="example" id="example-3">
     <div class="info"><p><strong>Exemple #3 Passer du mode PHP au mode HTML et vice-versa</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() a retourné true&lt;/h3&gt;<br />&lt;p&gt;Vous utilisez 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() a retourné false&lt;/h3&gt;<br />&lt;p&gt;Vous n'utilisez pas 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>
      Un exemple de résultat obtenu dans ce script est :
     </p></div>
     <div class="example-contents screen">
<div class="cdata"><pre>
&lt;h3&gt;str_contains() a retourné true&lt;/h3&gt;
&lt;p&gt;Vous utilisez Firefox&lt;/p&gt;
</pre></div>
     </div>
    </div>
   </p>
   <p class="para">
    Au lieu d&#039;utiliser une commande <span class="function"><a href="function.echo.php" class="function">echo</a></span> pour afficher
    du texte, il est possible d&#039;utiliser du code HTML pur. Le point important à noter
    ici est que la logique de programmation est conservée. Seul un des deux
    blocs HTML sera affiché, suivant le résultat de la fonction <span class="function"><a href="function.str-contains.php" class="function">str_contains()</a></span>.
    En d&#039;autres termes, cela dépend si la chaîne <code class="literal">Firefox</code>
    a été trouvée ou non.
   </p>
  </div><?php manual_footer($setup); ?>