⊗ppPmSDRt 444 of 447 menu

Едноставен рутинг во PHP двигател

Во претходната лекција на нашата веб-страница имаше само една група URL адреси. Се разбира, обично на веб-страницата има повеќе типови на адреси.

Секоја група на адреси ќе се обработува со свој регуларен израз, кој се нарекува рути. Соодветно, процесот на совпаѓање на рутите и кодот за нивна обработка се нарекува рутирање.

Да речеме, на пример, дека имаме два типа на адреси. Ајде за секоја група да напишеме свој рут:

<?php if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) { // една страница според слагот } if (preg_match('#^/page/all$#', $url, $params)) { // листа на сите страници } ?>

За погодност, кодот за обработка на секој рут ќе го издвоиме во посебна датотека:

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

Вклучените датотеки треба со својот резултат да враќаат низа со насловот и содржината на страницата.

Ајде да го напишеме кодот на првата датотека, која ја прикажува една страница според нејзиниот слаг:

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

А сега да напишеме код на втората датотека, која ја прикажува листата на сите страници:

<?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' => 'сите страници', 'content' => $content ]; return $page; ?>

По извршувањето на еден од условите, во променливата $page секогаш ќе има низа со една структура. Да ја искористиме оваа низа за да го внесеме насловот и содржината во шаблонот на веб-страницата:

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

Да собереме сè заедно и да го добиеме следниот код:

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

Да речеме дека имате веб-страница со корисници. Направете страница за приказ на еден корисник, страница за приказ на сите корисници и страница со форма за додавање на нов корисник.

Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј