Numeri, stringhe, files, variabili, funzioni predefinite


In questa introduzione a PHP ci si rivolge a persone che abbiano gi una buona esperienza di redazione di pagine HTML e di linguaggi di programmazione client side, come Javascript, che possono corredarle. La programmazione in PHP vengono quindi esposta a partire da esempi che si suppongono facilmente comprensibili, dai quali dedurre propriet e regole generali.

Ovviamente inutile usare la programmazione server side in casi in cui sufficiente la programmazione client side. Quindi si far riferimento a situazioni che non possono essere trattate in quest'ultimo modo.

Esempio 1

In esempio001.php si propone una semplice pagina web che comunica all'utente il numero di accessi alla pagina stessa.

Il sorgente di esempio001.php il seguente

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
  <title>esempio001</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>
<h1>
Questa pagina  stata visitata 
<?php 
  $conta = 0;
  $nf = "file_conta.txt";
  if (file_exists($nf))
    {
      $file = fopen($nf,"r");
      $conta = fgets($file);
      fclose($file);
    }
  $conta++;
  $file = fopen($nf,"w");
  fputs($file,$conta);
  fclose($file);
  echo $conta;
?>
 volte.
</h1>
</body>
</html>

La pagina sostanzialmente una pagina XHTML. L'unica novit rispetto all'XHTML l'uso del tag <?php che contiene uno script in linguaggio PHP. Lo script chiuso da ?>. L'uso di questo tag possibile solo se la pagina salvata con l'estensione *.php. Lo script contenuto nel tag rivolto al server quindi, a differenza di analoghi script in Javascript, non pu essere eseguito dal browser che legge la pagina. Se volete vedere questa pagina nel vostro PC, dovete avere installato Apache e PHP e aver copiato la pagina in una cartella dentro la cartella htdocs di Apache e usare come root della URL del documento localhost:81.

Lo script inizia con due istruzioni di assegnazione di valore a due variabili identificate da $conta e $nf:

  $conta = 0;
  $nf = "file_conta.txt";

Segue l'istruzione condizionale

  if (file_exists($nf))
    {
      $file = fopen($nf,"r");
      $conta = fgets($file);
      fclose($file);
    }

Questa istruzione ha la stessa sintassi dell'analoga in Javascript.

Nella condizione e nel blocco si invocano quattro funzioni predefinite in PHP: file_exists(), fopen(), fgets() e fclose(). Notare che anche gli identificatori delle funzioni sono case sensitive. Notare inoltre che gli identificatori delle funzioni non iniziano con il dollaro e che terminano obbligatoriamente con una coppia di parentesi tonde che sono quindi necessarie anche se la funzione non richiede argomenti.

L'istruzione successiva

  $conta++;  

incrementa di un'unit il valore di $conta. Nel caso non sia stato eseguito il blocco, il valore diventa 1; nel caso contrario il valore letto dal file che viene incrementato di 1. Notare che in quest'ultimo caso, il valore letto come stringa, viene automaticamente aggiornato a valore numerico, cosa impossibile nei linguaggi tipizzati.

Seguono quindi tre istruzioni che aggiornano il valore registrato nel file "file_conta.txt".

  $file = fopen($nf,"w");
  fputs($file,$conta);
  fclose($file);

Infine, con l'istruzione

  echo $conta;

il server spedisce al browser che legge la pagina il valore della variabile $conta. Se nel browser si usa la funzione che visualizza il sorgente della pagina, si vede scritto solo questo valore. Il lavoro di elaborazione fatto dal server completamente sconosciuto al browser al quale arrivano solo i messaggi spediti tramite l'istruzione echo.