⊗ppPmSDDb 442 of 447 menu

Enjin Berasaskan Pangkalan Data dalam PHP

Sekarang mari kita buat enjin laman web di mana kandungan halaman akan disimpan bukan dalam fail, tetapi dalam pangkalan data. Katakan kita mempunyai jadual seperti berikut dalam pangkalan data:

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

Katakan kita mahu mendapatkan halaman kita melalui URL seperti /page/1, di mana nombor tersebut akan mewakili id halaman yang kita mahu dapatkan.

Mari kita mulakan pelaksanaannya. Pertama, dalam fail berasingan, buat sambungan ke pangkalan data dan sambungkan fail tersebut ke fail kita:

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

Dapatkan URL yang diminta:

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

Dengan menggunakan ungkapan nalar, bahagikan URL kepada beberapa bahagian:

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

Tulis id dari tangkapan (capturing group) ke dalam pembolehubah:

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

Laksanakan pertanyaan (query) ke pangkalan data, dapatkan halaman yang diminta berdasarkan id:

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

Dapatkan fail templat:

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

Dalam fail templat, lakukan pemasangan tajuk dan kandungan:

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

Hantar halaman laman web yang telah dipasang ke pelayar:

<?php echo $layout; ?>

Satukan semuanya dan kita akan dapat kod berikut:

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

Laksanakan enjin yang diterangkan. Uji fungsinya.

Melayu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Kami menggunakan kuki untuk operasi laman web, analisis dan personalisasi. Pemprosesan data dijalankan mengikut Polisi Kerahsiaan.
terima semua tataletak tolak