8. Inclusions
Índex
Les funcions include() i afins
Un document PHP pot incloure en el seu interior un altre document que contingui text, codi HTML o codi PHP, o qualsevol combinació d'aquests. El document inclòs és, en general, un altre document PHP, però també pot ser un document .txt.
Això s'aconsegueix amb la funció include() (i similars):
Si el document inclòs conté codi PHP, aquest ha d'ésser contingut entre <?php i ?>, independentment del fet que l'include() en el document principal també vagi entre <?php i ?>.
La inclusió és molt útil quan hi ha elements que s'han aplicar a diversos llocs idènticament o amb petites variants. Hi ha dos supòsits bàsics (i qualsevol combinació imaginable):
- Dos o més documents comparteixen algun element en comú, contingut en un altre.
- Un document té una part variable, continguda en dos o més altres documents.
Dos o més documents comparteixen un element comú
Dos documents o més, que potser són molt diferents, poden tenir algun element en comú. Aquest element en comú es pot posar en un document destinat a ésser inclòs en els anteriors; això és especialment interessant si el contingut és variable al llarg del temps, ja que n'hi haurà prou de canviar-lo en un sol lloc.
arxiu 08a.txt
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" lang="ca" xml:lang="ca">
- <head>
- <meta name="author" content="AVL Dissey Web" />
- <meta http-equiv="Contents" content="Curs de PHP" />
- <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
- <title>PHP + MySQL (Notes elementals)</title>
- <link rel="stylesheet" href="estil.css" type="text/css" />
- </head>
arxiu 08b.php
- <?php
- include ("08a.txt"); // En lloc del HEAD, aquest 'include'
- ?>
-
- <body>
- <h1>Primer document</h1>
- <p>Aquest és el contingut del primer document.</p>
- </body>
- </html>
Vegeu-ne el resultat
Un document amb una part variable
En una situació contrària de l'anterior, un únic document es pot presentar amb continguts diversos, subministrats per sengles documents inclosos. La tria del contingut es fa des d'un altre document mitjançant un formulari, una sèrie d'hipervincles amb paràmetres o alguna funció del propi document.
- Document inicial, sense codi PHP, dotat d'enllaços per a seleccionar.
arxiu 08d.txt (els arxius 08e.txt i 08f.txt són anàlegs)
- <p><img src="08d.jpg" alt="maragda" style="float: left" />Una maragda és una pedra preciosa i un mineral, de tipus semblant al beril, de color verd brillant, ja que conté una petita quantitat de crom. La seva fórmula química és:(Be<sub>3</sub>Al<sub>2</sub>(SiO<sub>3</sub>)<sub>6</sub>). Està molt valorada perquè és l'únic mineral de color verd que cristalitza.</p>
- <p>La maragda és la pedra del mes de maig i els signes del zodíac associats. Neró usava una maragda com a lent correctora per seguir els combats de gladiadors, ja que patia miopia. S'aplicaven maragdes per pal·liar dolors d'ossos i com a amulet protector contra les serps, del mateix color de pell.</p>
- <p>S'han usat per predir el futur i per guarir malalties com la lepra. La maragda s'associa a la memòria i a la primavera.</p>
arxiu 08g.php
- <?php
- if ($_GET['p']=="dm"){ include("08f.txt"); } // un include en funció del valor tramès
- if ($_GET['p']=="ro"){ include("08e.txt"); } // id.
- if ($_GET['p']=="ma"){ include("08d.txt"); } // id.
- ?>
Vegeu-ne el resultat
Variants d'include()
Si la funció include() invoca un document inexistent, es mostra un missatge d'error, però després continua el processament de la resta del document PHP que la conté. Per a evitar això hi ha la funció require() que, si no troba el document invocat, a més de mostrar el missatge d'error, atura el processament del document que la conté.
Les funcions include_once() i require_once() són variants de les anteriors, destinades a assegurar, com a prevenció d'errors, que una mateixa inclusió només es faci una sola vegada en un mateix document.