PHP motorynda ýönekeý ýol ýörediji
Öňki sapakda web sahypamyzda diňe bir topar URL salgysy bardy. Elbetde, adatça web sahypada birnäçe dürli salgy görnüşi bolýar.
Her salgy topary öz düzgün ifadesi bilen işleniler, olara ýollar diýilýär. Şonuň ýaly-da, ýollary we olary işlemek üçin kody sazlaşdyryş prosesi ýol ýöredilmegi diýilýär.
Meselem, bizde iki sany salgy görnüşi bar. Her toparyň üçin öz ýoluny ýazalyň:
<?php
if (preg_match('#^/page/([a-z0-9_-]+)$#', $url, $params)) {
// belli bir sahypa slug-y boýunça
}
if (preg_match('#^/page/all$#', $url, $params)) {
// ähli sahypalaryň sanawy
}
?>
Amalyýet üçin her ýoly işleýän kody ýeke-täk faýla çykaralyň:
<?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';
}
?>
Çagyrylan faýllar netijesinde sahypanyň taýtly we mazmuny bolan sanawy yzyna gaytarmaly.
Indi birinji faýlyň, belli bir sahypany onyň slug-y boýunça görkezýän koduny ýazalyň:
<?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;
?>
Indi bolsa ikinji faýlyň, ähli sahypalara çykgytlaryň sanawyny görkezýän koduny ýazalyň:
<?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' => 'ähli sahypalar',
'content' => $content
];
return $page;
?>
Bir şert ýerine ýetirilenden soň, üýtgeýjide
$page hemişe bir gurluşly sanaw
bolar. Bu sanawy web sahypanyň şablonyna
taýtly we mazmuny goýmak üçin ulanyň:
<?php
$layout = file_get_contents('layout.php');
$layout = str_replace('{{ title }}', $page['title'], $layout);
$layout = str_replace('{{ content }}', $page['content'], $layout);
echo $layout;
?>
Hemmesini bir ýere ýygnalyň we aşakdaky kody alyň:
<?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;
?>
Ulanyjylaryň web sahypasy bolsun. Bir ulanyjyny görkezmek üçin sahypa, ähli ulanyjylary görkezmek üçin sahypa we täze ulanyjy goşmak üçin forma bilen sahypa ýerine ýetiriň.