PHP හි දත්ත සමුදාය මත පදනම් වූ එන්ජිම

දැන් අපි වෙබ් අඩවියක එන්ජිමක් සාදමු, එහි පිටු වල අන්තර්ගතය ගොනු වල තබා ගැනීම වෙනුවට, දත්ත සමුදායේ තබා ගනිමු. අපගේ දත්ත සමුදායේ පහත දැක්වෙන වගුව ඇතැයි සිතමු:

pages
id title content
1 title1 <div> content1 </div>
2 title2 <div> content2 </div>
3 title3 <div> content3 </div>

අපට අවශ්‍ය පිටු /page/1 වැනි URL මගින් ලබා ගැනීමට ඉඩ හරිමු, එහි අංකය අපට ලබා ගැනීමට අවශ්‍ය පිටුවේ id නියෝජනය කරයි.

අපි ක්‍රියාත්මක කිරීමට පටන් ගනිමු. පළමුව, වෙනම ගොනුවක දත්ත සමුදායට සම්බන්ධතාවයක් සාදා එම ගොනුව අපගේ ගොනුවට සම්බන්ධ කරමු:

index.php<?php
  $link = require 'connect.php';
?>

ඉල්ලූ URL ලබා ගනිමු:

index.php<?php
  $url = $_SERVER['REQUEST_URI'];
?>

රෙගුලාසි ප්‍රකාශනයක් භාවිතයෙන් URL කොටස් වලට වෙන් කරමු:

index.php<?php
  preg_match('#/page/(\d+)#', $url, $match);
?>

කැපූ කොටසෙන් id විචල්‍යයට ලියමු:

index.php<?php
  $id = $match[1];
?>

දත්ත සමුදායට විමසුමක් කරමු, id භාවිතයෙන් ඉල්ලූ පිටුව ලබා ගනිමු:

index.php<?php
  $query = "SELECT * FROM pages WHERE id=$id";
  $res = mysqli_query($link, $query) or die(mysqli_error($link));
  $page = mysqli_fetch_assoc($res);
?>

ටෙම්ප්ලේට් ගොනුව ලබා ගනිමු:

index.php<?php
  $layout = file_get_contents('layout.php');
?>

ටෙම්ප්ලේට් ගොනුවේ දී මාතෘකාව සහ අන්තර්ගතය ඇතුළත් කරමු:

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

සම්පාදනය කළ වෙබ් පිටුව බ්‍රවුසරයට යවමු:

index.php<?php
  echo $layout;
?>

සියල්ල එකට එකතු කර පහත කේතය ලබා ගනිමු:

index.php<?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;
?>
Задание 1

විස්තර කරන ලද එන්ජිම ක්‍රියාත්මක කරන්න. එහි ක්‍රියාකාරිත්වය පරීක්ෂා කරන්න.