PHP හි දත්ත සමුදාය මත පදනම් වූ එන්ජිම
දැන් අපි වෙබ් අඩවියක එන්ජිමක් සාදමු, එහි පිටු වල අන්තර්ගතය ගොනු වල තබා ගැනීම වෙනුවට, දත්ත සමුදායේ තබා ගනිමු. අපගේ දත්ත සමුදායේ පහත දැක්වෙන වගුව ඇතැයි සිතමු:
| id | title | content |
|---|---|---|
| 1 | title1 | <div> content1 </div> |
| 2 | title2 | <div> content2 </div> |
| 3 | title3 | <div> content3 </div> |
අපට අවශ්ය පිටු /page/1 වැනි URL මගින්
ලබා ගැනීමට ඉඩ හරිමු, එහි අංකය අපට ලබා ගැනීමට
අවශ්ය පිටුවේ 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;
?>
විස්තර කරන ලද එන්ජිම ක්රියාත්මක කරන්න. එහි ක්රියාකාරිත්වය පරීක්ෂා කරන්න.