PROGRAMMIAMO
PHP - Esempi
Esempio uno: determinazione anno bisestile o no

Si consideri il seguente semplice script, il quale fa uso delle variabili e della funzione date per determinare se l'anno corrente è bisestile o no:

<?php

date_default_timezone_set('Europe/Rome');
$anno = date("Y");
$stringa = " (non è bisestile)";

if ($anno%4 == 0 && $anno%100 != 0)
   $stringa = " (è bisestile)";
else if ($anno%400 == 0)
   $stringa = " (è bisestile)";

echo "Anno corrente: ".$anno.$stringa ;

?>

L'anno contenuto nella variabile $anno è bisestile se è divisibile per 4. Fanno eccezione i secoli (valori divisibili per 100) che non sono bisestili, tranne quelli divisibili per 400 (1600 è bisestile, mentre 1800 non lo è).

Si osservi l'istruzione if... else... scritta senza usare le parentesi graffe di delimitazione, dal momento che contiene una sola istruzione dipendente. Sarebbe stato comunque ugualmente corretto scrivere

if ($anno%4 == 0 && $anno%100 != 0)
   {
   $stringa = "(è bisestile)";
   }
else if ($anno%400 == 0)
   {
   $stringa = "(è bisestile)";
   }

 

Esempio due: generazione al volo di una tabellina delle moltiplicazioni

Il seguente script genera una tabella 10 x 10 delle moltiplicazioni:

<?php
echo "<table>\n";

for ($i=1;$i<=10;$i=$i+1)
   {
   echo "\t<tr>\n";

   for ($j=1;$j<=10;$j=$j+1)
      {
      echo "\t\t<td>";
      echo $i*$j;
      echo "</td>\n";
   }

   echo "\t</tr>\n";
   }

echo "</table>";
?>

Il codice HTML generato è il seguente (solo la prima parte):

Si osservi l'effetto dei caratteri speciali (caratteri di escape) \n e \t utilizzati nelle istruzioni echo del PHP. Il carattere \n determina un'andata a capo (new line) nel codice html, senza avere alcun effetto sulla visualizzazione della pagina. Analogamente \t introduce una tabulazione (o tab, cioè uno spostamento verso destra di una colonna) nel codice html generato. Entrambi i caratteri sono utili per rendere più leggibile e ordinato il codice html, ma non modificano in alcun modo la visualizzazione della pagina sul browser.

 

Esempio tre: calcolo del tempo trascorso dall'inizio dell'anno

Lo script seguente calcola il tempo trascorso in giorni, ore e minuti dall'inizio dell'anno, usando la funzione date("z") che torna il numero di giorni trascorsi dall'inizio anno:

<html>
<body>
<h1> Tempo trascorso dall'inizio dell'anno </h1>
<p> Sono trascorsi

<?php

date_default_timezone_set('Europe/Rome');
$giorni = date("z");
echo $giorni;
?>

giorni dall'inizio dell'anno </p>

<p> Più esattamente, sono trascorse

<?php
echo $giorni*24 + date("H");
?>

ore e <?php echo date("i"); ?>
minuti e <?php echo date("s"); ?>
secondi

</p>

</body>
</html>

Il codice html generato è il seguente:

<html>
<body>
<h1> Tempo trascorso dall'inizio dell'anno </h1>
<p> Sono trascorsi

27
giorni dall'inizio dell'anno </p>

<p> Più esattamente, sono trascorse

658
ore e 36minuti e 00secondi

</p>

</body>
</html>

La visualizzazione della pagina sul browser produce infine:

Tempo trascorso dall'inizio dell'anno

Sono trascorsi 27 giorni dall'inizio dell'anno

Più esattamente, sono trascorse 658 ore e 35minuti e 04secondi

Si osservi con attenzione che cosa è accaduto nel sorgente HTML della pagina: il codice php è stato eseguito prima dell'invio della pagina al client ed è stato sostituito con normale testo in html. Le istruzioni PHP si possono inserire liberamente all'interno del codice HTML in qualsiasi punto.

Un'altra osservazione interessante riguarda la variabile $giorni. Si noti che tale variabile conserva il proprio valore per tutta la pagina (il valore delle variabili PHP viene conservato anche fra diverse porzioni di codice PHP delimitate ciascuna da <?php... ?>)

PHP minimo e massimo

L'esempio precedente ci offre l'occasione di spiegare la distinzione fra due differenti stili di programmazione in PHP, detti comunemente minimo e massimo.

In PHP minimo, come suggerisce il nome, il codice PHP viene utilizzato solo quando effettivamente necessario per generare porzioni di codice html dinamiche. Per esempio, nel calcolo del tempo trascorso dall'inizio dell'anno, osserviamo che il PHP viene chiuso e riaperto più volte nel corso della pagina.

Un'alternativa è rappresentata dal PHP massimo. In questo caso, tutto il codice della pagina (o la maggior parte di esso) viene prodotta per mezzo di istruzioni echo in PHP. Si osservi a questo proposito la seguente diversa versione del programma precedente:

<?php

echo "<html>\n";
echo " <body>\n";
echo " <h1> Tempo trascorso dall'inizio dell'anno </h1>\n";
date_default_timezone_set('Europe/Rome');
$giorni = date("z");
echo "<p> Sono trascorsi " . $giorni . "giorni dall'inizio dell'anno </p>\n";
echo "<p> Più esattamente, sono trascorse ". $giorni*24 + date("H");
echo " ore e " .date("i"). "minuti e ". date("s"). " secondi </p>\n";
echo "</body>\n";
echo "</html>\n";

?>

Si noti che in questa ultima versione non c'è neppure una riga di HTML: tutto l'HTML viene generato al volo attraverso istruzioni echo in PHP. Si osservino anche le andate a capo \n, inserite al solo scopo di rendere più ordinato il codice HTML generato.

La scelta fra PHP minimo e massimo (o un misto fra i due) è questione di gusti, di stile personale di programmazione e di situazioni. Ciascuno deciderà per proprio conto, essendo ugualmente valide entrambe le soluzioni.

precedente - successiva  

Sito realizzato in base al template offerto da
Graphixmania.it - Grafica e non solo
http://www.graphixmania.it