back to top

Includere file con PHP: include() e require()

Nella lezione precedente abbiamo accennato a come interagire con un database MySQL attraverso i nostri script PHP. Come abbiamo visto è necessario specificare – affinchè la connessione al database funzioni correttamente – le credenziali di accesso al MySQL. Qualora la nostra applicazione sia composta di più file sarà, ovviamente, necessario aver cura di ripetere le nostre credenziali in ogni singolo script.

Una simile prassi, in realtà, è decisamente sconsigliabile in quanto sarebbe un inutile spreco di tempo ripetere più volte lo stesso codice, ciò aumenterebbe il rischio di errori e renderebbe, tra l’altro, poco agevole ogni operazione di modifica o aggiornamento (si pensi, ad esempio, ad un’applicazione composta da 20 files: qualora doveste modificare i dati di accesso al vostro DB dovreste modificare a mano tutti quanti gli script!).

Gestire le inclusioni con PHP

Al fine di far fronte a questa ed altre necessità analoghe, il linguaggio PHP ci offre alcuni utili comandi per gestire le inclusioni di file: questi sono include e require.

Mediante questi comandi (include e require non sono delle funzioni!), quindi, potremo evitare le ripetizioni di codice scrivendo le istruzioni una sola volta all’interno di un file che sarà poi incluso all’interno di tutti gli script che necessitano di quel codice.

Per tornare al nostro esempio di partenza potremmo creare un file "dati-mysql.php" con le credenziali di accesso, la connessione al DBMS e la selezione del DB evitando di ripetere sempre lo stesso codice nei file che lo richiedono:

<?php
$host = "localhost";
$user = "pippo";
$pass = "odiotopolino";
$database = "miodatabase";

// mi connetto al DBMS
$myconn = mysql_connect($host, $user, $pass) or die('Errore...');
//Mi connetto al database
mysql_select_db($database, $myconn) or die('Errore...');
?>

All’interno di tutti i singoli file preposti ad operare sul DB sarà sufficiente includere il file appena visto, in questo modo:

include "dati-mysql.php";

oppure con

require "dati-mysql.php";

si noti che sia include che require possono essere utilizzati, indifferentemente, con e senza le parentesi:

// corretto
include("dati-mysql.php");

// corretto
include "dati-mysql.php";

Differenza tra include e require

I due comandi include e require producono il medesimo risultato; l’unica differenza consiste nella gestione di eventuali errori: nel caso il file da includere non si trovato include() genererà un warning mentre require() un fatal error (bloccando, di fatto, l’esecuzione dello script).

Si noti che, affinchè l’inclusione vada a buon fine, è necessario specificare il percorso corretto del file che si desidera includere (nel nostro esempio il file "dati-mysql.php" si trova nella stessa cartella degli script che lo includono).

Per approfondire l’argomento vi consiglio di leggere queste semplici referenze:

Usare include_once e require_once

E’ da segnalare l’esistenza di due interessanti varianti, si tratta dei comandi include_once e require_once. La loro fnzione è identica a include e require con l’unica differenza che prima di includere il file verificano che questo non sia già stato precedentemente incluso nella pagina ed, in tal caso, non fanno nulla.

Pubblicità
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).
Articolo precedente
Articolo successivo