Муҳаррики базаи додаҳо дар PHP
Биёед ҳоло муҳаррики сайте созем, ки дар он муҳтавои саҳифаҳо на дар файлҳо, балки дар базаи додаҳо нигоҳ дошта мешавад. Бигзор дар базаи додаҳои мо чунин ҷадвал вуҷуд дошта бошад:
| id | title | content |
|---|---|---|
| 1 | title1 | <div> content1 </div> |
| 2 | title2 | <div> content2 </div> |
| 3 | title3 | <div> content3 </div> |
Бигзор мо саҳифаҳои худро ба воситаи
URL-ҳои шакли /page/1 ба даст орем, ки рақам хоҳад буд
намояндагӣ кунад аз id он саҳифаеро,
ки мо мехоҳем ба даст орем.
Ба амалӣ кардан шурӯъ мекунем. Барои оғоз дар файли ҷудогона пайвастшавиро ба базаи додаҳо созем ва ин файлро ба файли худ пайваст кунем:
<?php
$link = require 'connect.php';
?>
URL-и дархостшударо гирем:
<?php
$url = $_SERVER['REQUEST_URI'];
?>
Ба воситаи ифодаи муқаррарӣ URL-ро ба қисмҳо тақсим кунем:
<?php
preg_match('#/page/(\d+)#', $url, $match);
?>
id-ро аз "карман" ба тағирёбанда нависем:
<?php
$id = $match[1];
?>
Дархостро ба базаи додаҳо иҷро кунем, бо id
саҳифаи дархостшударо ба даст орем:
<?php
$query = "SELECT * FROM pages WHERE id=$id";
$res = mysqli_query($link, $query) or die(mysqli_error($link));
$page = mysqli_fetch_assoc($res);
?>
Файли шаблонро ба даст орем:
<?php
$layout = file_get_contents('layout.php');
?>
Дар файли шаблон ҷойгузории унвон ва муҳтаворо иҷро кунем:
<?php
$layout = str_replace('{{ title }}', $page['title'], $layout);
$layout = str_replace('{{ content }}', $page['content'], $layout);
?>
Саҳифаи сохтаи сайтиро ба браузер бифиристем:
<?php
echo $layout;
?>
Ҳамаро якҷоя мекунем ва рамзи зеринро ба даст меорем:
<?php
require 'connect.php';
$url = $_SERVER['REQUEST_URI'];
preg_match('#/page/(\d+)#', $url, $match);
$id = $match[1];
$query = "SELECT * FROM pages WHERE id=$id";
$res = mysqli_query($link, $query) or die(mysqli_error($link));
$page = mysqli_fetch_assoc($res);
$layout = file_get_contents('layout.php');
$layout = str_replace('{{ title }}', $page['title'], $layout);
$layout = str_replace('{{ content }}', $page['content'], $layout);
echo $layout;
?>
Муҳаррики тавсифшударо амалӣ кунед. Коркарди онро санҷед.