Exemple

MéthodeExemple d'utilisation

Exemple d'utilisation avec plusieurs variables. Ici, les différents contenus sont réalisés avant la création de la page.

Page d'origine :

1
<!DOCTYPE html>
2
<html lang="fr">
3
  <head>
4
    <meta charset="UTF-8" />
5
  </head>
6
  <body>
7
    <header>
8
      entête
9
    </header>
10
    <section>
11
      <h1>Page d'accueil</h1>
12
    </section>
13
    <footer>
14
      pied            
15
    </footer> 
16
  </body>
17
</html>

Bufferisation de la page

1
<?php
2
/*** entete ***/
3
ob_start();
4
echo "<header>entête</header>";
5
$entete = ob_get_clean();
6
/*** pied ***/
7
ob_start();
8
echo "<footer>pied</footer>";
9
$pied = ob_get_clean();
10
/*** contenu ***/
11
ob_start();
12
echo " <section><h1>Page d'accueil</h1></section>";
13
$contenu= ob_get_clean();
14
?>
15
<!DOCTYPE html>
16
<html lang="fr">
17
  <head>
18
    <meta charset="UTF-8" />
19
  </head>
20
  <body>
21
    <?php echo $entete; ?>
22
    <?php echo $contenu; ?>
23
    <?php echo $pied; ?>
24
  </body>
25
</html>

Factorisation de la page

1
<?php
2
/*** page accueil ***/
3
/*** entete ***/
4
ob_start();
5
echo "<header>entête</header>";
6
$entete = ob_get_clean();
7
/*** pied ***/
8
ob_start();
9
echo "<footer>pied</footer>";
10
$pied = ob_get_clean();
11
/*** contenu ***/
12
ob_start();
13
echo " <section><h1>Page d'accueil</h1></section>";
14
$contenu= ob_get_clean();
15
/*** appel du layout ***/
16
require 'layout.php';

layout.php

1
<!DOCTYPE html>
2
<html lang="fr">
3
  <head>
4
    <meta charset="UTF-8" />
5
  </head>
6
  <body>
7
    <?php echo $entete; ?>
8
    <?php echo $contenu; ?>
9
    <?php echo $pied; ?>
10
  </body>
11
</html>

Ce layout peut servir à toutes les pages de votre site.

Pour aller plus loin, les parties contenant le HTML peuvent être externalisées dans d'autres fichiers appelés avec un require.

1
<?php
2
/*** page accueil ***/
3
/*** entete ***/
4
ob_start();
5
require 'entete.php';
6
$entete = ob_get_clean();
7
/*** pied ***/
8
ob_start();
9
require 'pied.php';
10
$pied = ob_get_clean();
11
/*** contenu ***/
12
ob_start();
13
require 'accueil.php';
14
$contenu= ob_get_clean();
15
/*** appel du layout ***/
16
require 'layout.php';