⊗ppPmSDDb 442 of 447 menu

Datenbankbasierte Engine in PHP

Lassen Sie uns nun eine Website-Engine erstellen, in der der Seiteninhalt nicht in Dateien gespeichert wird, sondern in einer Datenbank. Nehmen wir an, wir haben folgende Tabelle in der Datenbank:

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

Nehmen wir an, wir möchten unsere Seiten über URLs wie /page/1 abrufen, wobei die Zahl die id der Seite darstellt, die wir abrufen möchten.

Beginnen wir mit der Implementierung. Zuerst erstellen wir in einer separaten Datei eine Verbindung zur Datenbank und binden diese Datei in unsere ein:

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

Holen wir die angeforderte URL:

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

Teilen wir die URL mithilfe eines regulären Ausdrucks in Teile:

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

Schreiben wir die id aus der Erfassungsgruppe in eine Variable:

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

Führen wir eine Abfrage an die Datenbank durch, um die angeforderte Seite per id zu erhalten:

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

Holen wir die Layout-Datei:

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

In der Layout-Datei führen wir das Einsetzen des Titels und des Inhalts durch:

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

Senden wir die zusammengestellte Website-Seite an den Browser:

<?php echo $layout; ?>

Fassen wir alles zusammen und erhalten folgenden 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; ?>

Implementieren Sie die beschriebene Engine. Testen Sie ihre Funktion.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen