PROGRAMMIAMO
PHP - File: Include

Il PHP e i file sul server remoto

Il linguaggio PHP consente di gestire file presenti sul server remoto che ospita la pagina. Tali file potranno servire, a seconda dei casi, a memorizzare i dati degli utenti, ad effettuare ricerche in un data base, a contare il numero dei visitatori a un sito, a realizzare blog, libri degli ospiti (guest book), forum, sondaggi e molte altre cose.

In generale un file residente sul server remoto è utile (o indispensabile) ogni volta che si ha la necessità di memorizzare o di richiamare informazioni generali, relative cioè non al singolo utente ma a tutti (o a una parte) dei visitatori della pagina sul sito.

L'esempio più semplice è quello del conteggio del numero dei visitatori a una pagina: il numero dei visitatori dev'essere memorizzato in un file, costantemente aggiornato (incrementandolo) a ogni nuova visita. Tale file non può ovviamente risiedere nel computer client del singolo visitatore, ma dev'essere un file "globale", accessibile a tutti i visitatori del sito. Pertanto va da sé che tale file dovrà obbligatoriamente essere memorizzato sul server remoto.

 

include e require

L'istruzione più semplice per la gestione di file in PHP è include. La sintassi è molto immediata e intuitiva:

<?php
include "file.txt";
?>

Il risultato dell'esecuzione dell'istruzione precedente è l'inclusione del contenuto del file di nome "file.txt" nel punto esatto in cui viene eseguita l'istruzione.

Abbiamo già visto un esempio di uso dell'istruzione include nelle lezioni precedenti. Qui di seguito vediamo un semplice esempio in cui include viene usata insieme a date per visualizzare una pagina differente in corrispondenza di ogni mese dell'anno (date("n") restituisce il numero del mese corrente: 1 per gennaio, 2 per febbraio eccetera).

<?php
$mese = date("n");

if ($mese == 1)
  include("gennaio");
else if ($mese == 2)
  include ("febbraio");
else if ($mese == 3)
  include ("marzo");
...

?>

I file "gennaio", "febbraio", "marzo" etc. contengono il codice HTML che dovrà essere visualizzato. Si noti che non ha nessuna importanza l'estensione dei file usati con l'istruzione include: potrebbe essere html, php, txt o anche nessuna estensione (ovviamente se il nome del file contiene un'estensione, qualunque essa sia, questa dev'essere inserita insieme al nome del file).

Simile all'istruzione include è l'istruzione require:

<?php
require "file.txt";
?>

La differenza è che, se il file richiesto non esiste, l'istruzione require genera un errore fatale (fatal error) e termina l'esecuzione del codice. L'istruzione include invece, in caso di assenza del file, si limita a produrre un warning e prosegue nell'esecuzione. Per questa ragione di solito viene consigliato l'uso di require al posto di include.

E' comunque una buona norma controllare se il file esiste, prima di usare include o require, nel seguente modo:

<?php
if(file_exists('file.txt'))
include 'file.txt';
?>

ATTENZIONE:

Se il file incluso con la funzione include o require contiene codice php eseguibile (cioè se si include una pagina php), tale codice viene eseguito. Se si vuole semplicemente visualizzare il contenuto del file come semplice testo, senza eseguirlo, bisogna usare l'istruzione

show_source("nomefile")

del tutto equivalente a include, salvo che appunto non esegue il codice.

Su alcuni web server è abilitato il cosiddetto safe_mode per cui l'istruzione show_source non può essere eseguita. In alternativa si può usare il codice seguente:

$contenuto = file_get_contents("nomefile", true);
highlight_string($contenuto);

 

precedente - successiva

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