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