⊗ppPmSDDb 442 of 447 menu

Database-drevet motor i PHP

La oss nå lage en nettsidemotor der innholdet på sidene lagres ikke i filer, men i en database. La oss si at vi i databasen har en tabell som ser slik ut:

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

La oss si at vi ønsker å hente sidene våre via URL-er på formen /page/1, hvor tallet vil representere id til den siden vi ønsker å hente.

La oss begynne implementeringen. Først, i en separat fil, lager vi en tilkobling til databasen og inkluderer denne filen i vår:

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

Hent den forespurte URL-en:

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

Del opp URL-en i deler ved hjelp av et regulært uttrykk:

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

Skriv id fra capture-gruppen til en variabel:

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

Utfør en spørring mot databasen, og hent den forespurte siden basert på id:

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

Hent mal-filen:

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

I mal-filen, utfør innsetting av tittel og innhold:

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

Send den sammensatte nettsiden til nettleseren:

<?php echo $layout; ?>

Setter vi alt sammen, får vi følgende kode:

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

Implementer den beskrevne motoren. Test at den fungerer.

Norsk
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Vi bruker informasjonskapsler for nettstedets funksjonalitet, analyse og personalisering. Behandling av data foregår i henhold til Personvernerklæringen.
godta alle tilpass avvis