CNC sistemos kūrimas PHP variklyje

Šiuolaikiniame pasaulyje adresai su skaičiais, pvz. /page/1, laikomi negražiais. Daug gražiau, kai puslapiui nurodomas ne jo numeris, o tekstinis pavadinimas, atitinkantis puslapio antraštę, pavyzdžiui, taip: /page/mano-pirmas-puslapis.

Tokie adresai vadinami CNC (žmogui suprantami URL). CNC buvimas patogesnis naudotojui nei nieko nesakantys id numeriai. Be to, dėl CNC paieškos sistemos mūsų svetainės pozicijos bus geresnės.

URL dalis, atitinkanti puslapio pavadinimą, vadinama slug (slug). Leiskite mūsų duomenų bazėje pridėti mūsų puslapiams stulpelį su slug:

pages
id slug title content
1 mano-pirmas-puslapis title1 <div> content1 </div>
2 mano-antras-puslapis title2 <div> content2 </div>
3 mano-trecias-puslapis title3 <div> content3 </div>

Pakeiskime dabar mūsų variklį, kad jis dirbtų su slug vietoj id. Tam pataisykime reguliarųjį išraišką:

php<?php
  preg_match('#/page/([a-z0-9_-]+)#', $url, $match);
  $slug = $match[1];
?>

Ir puslapio paieškos sąlygoje nurodykime slug vietoj id:

php<?php
  $query = "SELECT * FROM pages WHERE slug='$slug'";
?>
Задание 1

Paverskite savo svetainės variklį, kad jis dirbtų su CNC. Išbandykite jo veikimą.