<?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 => 'it',
  ),
  'this' => 
  array (
    0 => 'tutorial.useful.php',
    1 => 'Qualcosa di utile',
    2 => 'Qualcosa di utile',
  ),
  'up' => 
  array (
    0 => 'tutorial.php',
    1 => 'Una semplice introduzione',
  ),
  'prev' => 
  array (
    0 => 'tutorial.firstpage.php',
    1 => 'La prima pagina PHP',
  ),
  'next' => 
  array (
    0 => 'tutorial.forms.php',
    1 => 'Trattare con i Form',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'it',
    '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">
   <h2 class="title">Qualcosa di utile</h2>
   <p class="para">
    Andiamo a fare qualcosa di leggermente più utile. Andremo a controllare
    che tipo di browser sta utilizzando la persona che visita le nostre pagine.
    Per fare questo si andrà a controllare la stringa dell&#039;user agent che il browser
    invia come parte della richiesta HTTP. Quest&#039;informazione viene inviata in una <a href="language.variables.php" class="link">variabile</a>. Le Variabili iniziano sempre
    con il simbolo del dollaro in PHP. La variabile alla quale ci riferiamo adesso
    è <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">Nota</strong>: 
    <p class="para">
     <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER</a></var> è una variabile
     speciale riservata a PHP la quale contiene tutte le informazioni relative al Web Server.
     È conosciuta come Variabile autoglobale (o Superglobale). Per maggiori informazioni
     è possibile vedere la pagina del manuale relativa alle 
     <a href="language.variables.superglobals.php" class="link">Variabili Autoglobali</a>. Questo tipo di variabili è stato introdotto nella versione
     <a href="https://www.php.net/releases/4_1_0.php" class="link external">&raquo;&nbsp;4.1.0</a> di PHP. Nelle versioni precedenti abbiamo
     utilizzato gli ormai vecchi array <var class="varname">$HTTP_*_VARS</var>,
     come <var class="varname">$HTTP_SERVER_VARS</var>. Dal PHP 5.4.0
     queste variabili sono state rimosse. (Potete guardare nelle note
     del <a href="tutorial.oldcode.php" class="link">vecchio codice</a>.)
    </p>
   </p></blockquote>
   <p class="para">
    Per visualizzare questa variabile, dobbiamo semplicemente:
   </p>
   <p class="para">
    <div class="example" id="example-1">
     <div class="info"><p><strong>Example #1 Stampare a video una variable (un elemento d&#039;Array)</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>
     L&#039;output (risultato) di questo script potrebbe essere:
    </p></div>
    <div class="example-contents screen"><br />
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)<br />
    </div>
   </div>
   </p>
   <p class="para">
    Ci sono molti <a href="language.types.php" class="link">types</a> (tipi) di
    variabili disponibili in PHP.  Nell&#039;esempio di sopra abbiamo stampato 
    un elemento di un <a href="language.types.array.php" class="link">Array</a>.
    Gli Array possono essere molto utili.
   </p>
   <p class="para">
    <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER</a></var> è soltanto una variabile che automaticamente
    viene resa diponibile da PHP.  È possibile visualizzare una lunga lista nella
    sezione <a href="reserved.variables.php" class="link">Variabili riservate</a> del manuale 
    oppure ottenere la lista completa cercando
    nell&#039;output della funzione <span class="function"><a href="function.phpinfo.php" class="function">phpinfo()</a></span> utilizzata nell&#039;esempio
    della precedente sezione.
   </p>
   <p class="para">
    Si possono inserire istruzioni PHP multiple all&#039;interno di un tag PHP e creare
    piccoli blocchi di codice che fanno più di un singolo echo.
    Per esempio, se si volesse controllare se l&#039;utente usa Internet Explorer si potrebbe
    fare questo:
   </p>
   <p class="para">
    <div class="example" id="example-2">
     <p><strong>Example #2 Esempi usando le <a href="language.control-structures.php" class="link">strutture di 
     controllo</a> e le <a href="language.functions.php" class="link">funzioni</a></strong></p>
     <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">strpos</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">'MSIE'</span><span style="color: #007700">) !== </span><span style="color: #0000BB">FALSE</span><span style="color: #007700">) {<br /> echo </span><span style="color: #DD0000">'Stai usando Internet Explorer&lt;br /&gt;'</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
     </div>

     <div class="example-contents"><p>
      L&#039;output di esempio di questo script potrebbe essere:
     </p></div>
     <div class="example-contents screen">
<div class="cdata"><pre>
Stai usando Internet Explorer&lt;br /&gt;
</pre></div>
     </div>
    </div>
   </p>
   <p class="para">
    Qui introduciamo un paio di nuovi concetti. Abbiamo l&#039;istruzione
    <a href="control-structures.if.php" class="link">if</a> (se). Se avete una conoscenza
    con la sintassi di base usata dal linguaggio C, questo dovrebbe sembrare
    logico per voi. In caso contrario, dovreste probabilmente prendere
    qualsiasi libro introduttivo di PHP e leggere i primi capitoli, o leggere
    la parte del manuale relativa ai <a href="langref.php" class="link">Riferimenti del
    Linguaggio</a>.
   </p>
   <p class="para">
    Il secondo concetto che abbiamo introdotto era la chiamata alla funzione
    <span class="function"><a href="function.strpos.php" class="function">strpos()</a></span>. Questa è una funzione sviluppata in PHP
    che cerca una stringa all&#039;interno di un&#039;altra stringa. In questo caso
    abbiamo cercato <code class="literal">&#039;MSIE&#039;</code> (cosiddetta occorrenza) all&#039;interno della stringa
    <var class="varname"><a href="reserved.variables.server.php" class="classname">$_SERVER["HTTP_USER_AGENT"]</a></var> (cosiddetta haystack). Se la stringa viene trovata all&#039;interno dell&#039;haystack,
    la funzione restituisce la posizione dell&#039;occorrenza
    relativa all&#039;inizio dell&#039;haystack. Altrimenti, restituisce <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>.
    Se non restituisce <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong>, l&#039;espressione <a href="control-structures.if.php" class="link">if</a>
    viene valutata come <strong><code><a href="reserved.constants.php#constant.true">true</a></code></strong> 
    ed il codice all&#039;interno dei relativi {braces} (sostegni) sarà
    eseguito. Altrimenti, il codice non sarà eseguito. Sentitevi liberi di generare esempi
    simili, con <a href="control-structures.if.php" class="link">if</a>,
    <a href="control-structures.else.php" class="link">else</a> (altrimenti), ed altre
    funzioni quali <span class="function"><a href="function.strtoupper.php" class="function">strtoupper()</a></span> e <span class="function"><a href="function.strlen.php" class="function">strlen()</a></span>.
    Ogni pagina del manuale, relativa a queste funzioni contiene anche degli
    esempi pratici.  Se non sei sicuro di come utilizzare queste funzioni, vorrai leggere le
    pagine del manuale su <a href="about.prototypes.php" class="link">come leggere una
    definizione di funzione</a> e la sezione sulle
    <a href="language.functions.php" class="link">funzioni PHP</a>.
   </p>
   <p class="para">
    Possiamo fare un passo avanti e mostrarvi come potete entrare ed uscite dal modo
    PHP anche dall&#039; interno di un blocco PHP:
   </p>
   <p class="para">
    <div class="example" id="example-3">
     <div class="info"><p><strong>Example #3 Intercalare i modi PHP e HTML</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">strpos</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">'MSIE'</span><span style="color: #007700">) !== </span><span style="color: #0000BB">FALSE</span><span style="color: #007700">) {<br /></span><span style="color: #0000BB">?&gt;<br /></span>&lt;h3&gt;strpos() dovrebbe ritornare non-false&lt;/h3&gt;<br />&lt;b&gt;Stai usando Internet Explorer&lt;/b&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;strpos() dovrebbe ritornare false&lt;/h3&gt;<br />&lt;b&gt;Non stai usando Internet Explorer&lt;/b&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>
      L&#039;output di esempio di questo script potrebbe essere:
     </p></div>
     <div class="example-contents screen">
<div class="cdata"><pre>
&lt;h3&gt;strpos() dovrebbe ritornare non-false&lt;/h3&gt;
&lt;b&gt;Stai usando Internet Explorer&lt;/b&gt;
</pre></div>
     </div>
    </div>
   </p>
   <p class="para">
    Invece di usare la dichiarazione echo per fare l&#039;output di qualcosa, saltiamo
    fuori dalla modalità PHP inviando soltanto HTML puro. Il punto importante da notare qui
    è che il flusso logico dello script rimane intatto. Solo uno dei blocchi
    di HTML finirà per essere inviato come risposta, dipendendo dal
    risultato di <span class="function"><a href="function.strpos.php" class="function">strpos()</a></span>.  In altre parole, dipende
    se la stringa <code class="literal">MSIE</code> viene trovata o meno.
   </p>
  </div><?php manual_footer($setup); ?>