⊗ppPmSDRt 444 of 447 menu

Jednoduché smerovanie v engine v PHP

V predchádzajúcej lekcii bola na našej stránke iba jedna skupina URL. Samozrejme, zvyčajne na stránke býva niekoľko typov adries.

Každá skupina adries bude spracovaná vlastným regulárnym výrazom, ktoré sa nazývajú routy. Zodpovedajúci proces priraďovania routov a kódu pre ich spracovanie sa nazýva routing.

Povedzme, že máme napríklad dva typy adries. Pre každú skupinu napíšme vlastný rout:

<?php if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) { // jedna stránka podľa slugu } if (preg_match('#^/page/all$#', $url, $params)) { // zoznam všetkých stránok } ?>

Pre pohodlie presunieme kód spracovania každého routu do samostatného súboru:

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

Svojim výsledkom by mali pripájané súbory vracať pole s titulkom a obsahom stránky.

Napíšme kód prvého súboru, ktorý zobrazí jednu stránku podľa jej slugu:

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

A teraz napíšme kód druhého súboru, ktorý zobrazí zoznam odkazov na všetky stránky:

<?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 vykonaní jednej z podmienok bude v premennej $page vždy pole z jednej štruktúry. Použime toto pole na to, aby sme dosadili titulok a obsah do šablóny stránky:

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

Dajme všetko dokopy a získame nasledujúci kód:

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

Nech máte stránku s používateľmi. Vytvorte stránku pre zobrazenie jedného používateľa, stránku pre výpis všetkých používateľov a stránku s formulárom pre pridanie nového používateľa.

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
Používame cookies na fungovanie stránky, analýzu a personalizáciu. Spracúvanie údajov prebieha v súlade s Politikou ochrany osobných údajov.
prijať všetky nastaviť odmietnuť