⊗ppPmSDRt 444 of 447 menu

Vienkāršs maršrutēšanas mehānisms PHP

Iepriekšējā nodarbībā mūsu vietnē bija tikai viena URL adrešu grupa. Protams, parasti vietnē ir vairāki dažādu adrešu veidi.

Katra adrešu grupa tiks apstrādāta ar savu regulārās izteiksmes modeli, ko sauc par maršrutiem. Attiecīgi maršrutu saskaņošanas process ar kodu to apstrādei tiek saukts par maršrutēšanu.

Pieņemsim, ka mums ir, piemēram, divi adrešu veidi. Katrai grupai uzrakstīsim savu maršrutu:

<?php if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) { // viena lapu pēc slaga } if (preg_match('#^/page/all$#', $url, $params)) { // visu lapu saraksts } ?>

Ērtības labad izņemsim kodu katra maršruta apstrādei atsevišķā failā:

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

Iekļautajiem failiem kā rezultātam jāatgriež masīvs ar lapas nosaukumu un saturu.

Uzrakstīsim kodu pirmajam failam, kas izvada vienu lapu pēc tās slaga:

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

Un tagad uzrakstīsim kodu otrajam failam, kas izvada saites sarakstu uz visām lapām:

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

Pēc kāda no nosacījumiem izpildes mainīgajā $page vienmēr būs masīvs ar vienu struktūru. Izmantosim šo masīvu, lai ievietotu nosaukumu un saturu vietnes veidnē:

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

Saliksim visu kopā un iegūsim šādu kodu:

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

Pieņemsim, ka jums ir vietne ar lietotājiem. Izveidojiet lapu viena lietotāja attēlošanai, lapu visu lietotāju izvadei un lapu ar formu jauna lietotāja pievienošanai.

Latviešu
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mēs izmantojam sīkdatnes, lai nodrošinātu vietnes darbību, analīti un personalizāciju. Datu apstrāde notiek saskaņā ar Konfidencialitātes politiku.
pieņemt visus iestatīt noraidīt