⊗ppPmSDDb 442 of 447 menu

Moteur basé sur une base de données en PHP

Créons maintenant un moteur de site web dans lequel le contenu des pages sera stocké non pas dans des fichiers, mais dans une base de données. Supposons que nous ayons la table suivante dans la base de données :

pages
id title content
1 title1 <div> content1 </div>
2 title2 <div> content2 </div>
3 title3 <div> content3 </div>

Supposons que nous voulions obtenir nos pages via des URL de la forme /page/1, où le nombre représentera l'id de la page que nous souhaitons obtenir.

Passons à la mise en œuvre. Pour commencer, dans un fichier séparé, établissons une connexion à la base de données et includons ce fichier dans le nôtre :

<?php $link = require 'connect.php'; ?>

Récupérons l'URL demandée :

<?php $url = $_SERVER['REQUEST_URI']; ?>

À l'aide d'une expression régulière, divisons l'URL en parties :

<?php preg_match('#/page/(\d+)#', $url, $match); ?>

Enregistrons l'id de la capture (groupe) dans une variable :

<?php $id = $match[1]; ?>

Exécutons une requête à la base de données, pour obtenir la page demandée par son id :

<?php $query = "SELECT * FROM pages WHERE id=$id"; $res = mysqli_query($link, $query) or die(mysqli_error($link)); $page = mysqli_fetch_assoc($res); ?>

Récupérons le fichier de modèle (template) :

<?php $layout = file_get_contents('layout.php'); ?>

Dans le fichier de modèle, effectuons l'insertion du titre et du contenu :

<?php $layout = str_replace('{{ title }}', $page['title'], $layout); $layout = str_replace('{{ content }}', $page['content'], $layout); ?>

Envoyons la page assemblée du site au navigateur :

<?php echo $layout; ?>

Rassemblons tout et obtenons le code suivant :

<?php require 'connect.php'; $url = $_SERVER['REQUEST_URI']; preg_match('#/page/(\d+)#', $url, $match); $id = $match[1]; $query = "SELECT * FROM pages WHERE id=$id"; $res = mysqli_query($link, $query) or die(mysqli_error($link)); $page = mysqli_fetch_assoc($res); $layout = file_get_contents('layout.php'); $layout = str_replace('{{ title }}', $page['title'], $layout); $layout = str_replace('{{ content }}', $page['content'], $layout); echo $layout; ?>

Implémentez le moteur décrit. Testez son fonctionnement.

Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser