⊗ppPmSDDb 442 of 447 menu

Database-aangedreven engine in PHP

Laten we nu een website-engine maken waarin de inhoud van pagina's niet in bestanden wordt opgeslagen, maar in een database. Stel dat we in de database de volgende tabel hebben:

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

Stel dat we onze pagina's willen ophalen via URL's van het formaat /page/1, waarbij het getal het id vertegenwoordigt van de pagina die we willen ophalen.

Laten we beginnen met de implementatie. Om te beginnen maken we in een apart bestand verbinding met de database en verbinden we dit bestand met het onze:

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

We halen de opgevraagde URL op:

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

Met behulp van een reguliere expressie splitsen we de URL in delen:

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

We schrijven het id uit de capture group in een variabele:

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

We voeren een query uit op de database, waarbij we via het id de opgevraagde pagina ophalen:

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

We halen het sjabloonbestand op:

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

In het sjabloonbestand voeren we de invoeging van de titel en de inhoud uit:

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

We sturen de samengestelde webpagina naar de browser:

<?php echo $layout; ?>

Laten we alles samenvoegen en we krijgen de volgende code:

<?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; ?>

Implementeer de beschreven engine. Test de werking ervan.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren