⊗ppPmSDRt 444 of 447 menu

Lihtne marsruutimine PHP mootoris

Eelmises õppetükis oli meil saidil ainult üks URL-ide rühm. Loomulikult on tavalisel saidil mitu tüüpi aadresse.

Iga aadressirühm töödeldakse oma regulaaravaldisega, mida nimetatakse marsruutideks. Vastavalt protsessi marsruutide sobitamist ja nende töötlemiseks mõeldud koodi nimetatakse marsruutimiseks.

Oletame, et meil on näiteks kaks tüüpi aadresse. Kirjutame iga rühma jaoks oma marsruudi:

<?php if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) { // üks leht slangi järgi } if (preg_match('#^/page/all$#', $url, $params)) { // kõikide lehtede nimekiri } ?>

Mugavuse huvides viime iga marsruudi töötlemise koodi eraldi faili:

<?php if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) { $page = include 'view/page/show.php'; } if (preg_match('#^/page/all$#', $url, $params)) { $page = include 'view/page/all.php'; } ?>

Kaasatavad failid peaksid oma tulemusena tagastama massiivi lehe pealkirja ja sisuga.

Kirjutame esimese faili koodi, mis väljastab ühe lehe selle slangi järgi:

<?php $slug = $params[1]; $query = "SELECT * FROM pages WHERE slug='$slug'"; $res = mysqli_query($link, $query) or die(mysqli_error($link)); $page = mysqli_fetch_assoc($res); return $page; ?>

Ja nüüd kirjutame teise faili koodi, mis väljastab linkide nimekirja kõikidele lehtedele:

<?php $query = "SELECT slug, title FROM pages"; $res = mysqli_query($link, $query) or die(mysqli_error($link)); for ($data = []; $row = mysqli_fetch_assoc($res); $data[] = $row); $content = ''; foreach ($data as $page) { $content .= ' <div> <a href="/page/' . $page['slug'] . '">' . $page['title'] . '</a> </div> '; } $page = [ 'title' => 'kõik lehed', 'content' => $content ]; return $page; ?>

Pärast ühe tingimuse täitmist on muutujas $page alati massiiv ühest struktuurist. Kasutame seda massiivi, et asendada pealkiri ja sisu saidi mallis:

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

Kogume kõik kokku ja saame järgmise koodi:

<?php $url = $_SERVER['REQUEST_URI']; if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) { $page = include 'view/page/show.php'; } if (preg_match('#^/page/all$#', $url, $params)) { $page = include 'view/page/all.php'; } $layout = file_get_contents('layout.php'); $layout = str_replace('{{ title }}', $page['title'], $layout); $layout = str_replace('{{ content }}', $page['content'], $layout); echo $layout; ?>

Oletame, et teil on kasutajatega sait. Tehke leht ühe kasutaja kuvamiseks, leht kõikide kasutajate väljastamiseks ja leht vormiga uue kasutaja lisamiseks.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu