⊗ppPmSDRt 444 of 447 menu

Preprosto usmerjanje v pogonskem programu v PHP

V prejšnji lekciji je bilo na naši spletni strani le eno skupino URL-jev. Seveda ima spletna stran običajno več vrst naslovov.

Vsako skupino naslovov bo obdelalo svoje regularno izražanje, ki se imenujejo usmerjevalniki. V skladu s tem se proces ujemanja usmerjevalnikov in kode za njihovo obdelavo imenuje usmerjanje.

Recimo, da imamo na primer dve vrsti naslovov. Za vsako skupino napišimo svoj usmerjevalnik:

<?php if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) { // ena stran po sledu } if (preg_match('#^/page/all$#', $url, $params)) { // seznam vseh strani } ?>

Za udobje izločimo kodo obdelave vsakega usmerjevalnika v ločeno datoteko:

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

Vključene datoteke morajo svoj rezultat vrniti kot matriko z naslovom in vsebino strani.

Napišimo kodo prve datoteke, ki prikaže eno stran po njenem sledu:

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

In sedaj napišimo kodo druge datoteke, ki prikaže seznam povezav na vse strani:

<?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' => 'all pages', 'content' => $content ]; return $page; ?>

Po izvedbi enega od pogojev bo v spremenljivki $page vedno matrika iz ene strukture. Uporabimo to matriko, da vstavimo naslov in vsebino v predlogo spletne strani:

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

Vse skupaj sestavimo in dobimo naslednjo kodo:

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

Recimo, da imate spletno stran z uporabniki. Naredite stran za prikaz enega uporabnika, stran za prikaz vseh uporabnikov in stran z obrazcem za dodajanje novega uporabnika.

Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni