Xavier Lamorlette

Sources PHP du site

J'ai codé ce site en PHP. Sa structure et quelques pages exemples montrant ses fonctionnalités sont disponibles sous GitHub : https://github.com/xlamorlette/site-perso-php. Voici quelques explications.


Structure des répertoires

Chaque répertoire du site doit contenir un fichier index.php et un fichier index.txt.

Fichier index.php

Le fichier index.php est le même dans tous les répertoires (cela permet de refléter la structure du site avec des URL claires et significatives).

Il inclut le fichier common.php qui est à la racine du site, en prenant en compte le chemin relatif nécessaire. Les variables $root et $path_elements sont utilisées dans common.php.

// --- contenu de index.php dans chaque répertoire ---
<?php
    $current_path = dirname($_SERVER['SCRIPT_FILENAME']);
    $all_path_elements = explode("/", $current_path);
    $nb_levels = 0;
    while (! file_exists(str_repeat("../", $nb_levels) . "common.php")) {
        $nb_levels ++;
    }
    $root = str_repeat("../", $nb_levels);
    $path_elements = array_slice($all_path_elements, -$nb_levels);
    require_once($root . "common.php");
?>

Pour la racine du site, ce fichier index.php est spécifique :

// --- contenu de index.php à la racine ---
<?php
  $root = "./";
  $path_elements = NULL;
  require_once($root . "common.php");
?>

Fichier index.txt

Si on met une ligne "*sommaire", un sommaire de la page est alors créé, en recherchant dans la page les lignes "+lien+titre" qui seront elles-mêmes remplacées par des balises au sein de la page. Jusqu'à trois niveaux hierarchiques (avec un, deux, ou trois caractères '+' en début de ligne) sont gérés. La deuxième partie de la ligne "+titre" est optionnelle : elle permet d'avoir un titre différent de la balise.

Exemple de fichier index.txt :

PHP
code PHP du site
sources PHP de ce site
<h3 style="text-align:center;">Sources PHP du site</h3>
[…]

*sommaire

+structure_repertoires+Structure des répertoires
[…]

++index_txt+Fichier <code>index.txt</code>
[…]

Affichage de la structure des pages filles d'une catégorie

Pour afficher, récursivement, la structure des pages filles d'une catégorie (c'est-à-dire les pages filles d'un répertoire), on utilise la balise *structure_pages_filles :

// --- contenu de index.txt pour l'affichage d'une catégorie ---
Titre de la page
description courte de la page
description longue de la page
<h3 style="text-align:center;">Titre</h3>

<p>Voici les pages de cette catégorie :</p>
*structure_pages_filles

Fichier commun.php

Feuille de style CSS

Ce site utilise la feuille de style CSS style.css.

La dernière mise à jour de cette page date d'octobre 2025.

Le contenu de ce site est, en tant qu'œuvre originale de l'esprit, protégé par le droit d'auteur.
Pour tout commentaire, vous pouvez m'écrire à xavier.lamorlette@gmail.com.