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:
| 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
preg_match('#/page/([a-z0-9_-]+)#', $url, $match);
$slug = $match[1];
?>
Ir puslapio paieškos sąlygoje nurodykime slug vietoj id:
<?php
$query = "SELECT * FROM pages WHERE slug='$slug'";
?>
Paverskite savo svetainės variklį, kad jis dirbtų su CNC. Išbandykite jo veikimą.