Пишемо движок для сайту на PHP (v.2.0), Різне, Програмування, статті

Автор: Дятлов Є.І.
Науковий редактор: Чеботарьов А.В.

Передмова

У даній статті я хочу розповісти про те, як можна ефективно використовувати кошти PHP для створення сайтів. Йтиметься про організацію зберігання даних, методах її максимально вигідного використання, а також про технічному виконанні сайту. Адже від того наскільки просто написаний код сайту буде залежати його швидкість завантаження, від того як написаний код (у спеціальному візуальному редакторі або в простому блокноті) може залежати не тільки розмір коду сайту, але і те, чи буде він взагалі відображатися так як задумано в різних браузерах. Дана стаття буде корисна тим, хто тільки починає вивчати PHP і вже має невеликий досвід роботи з PHP і HTML.

 

Движок (ядро)

 

Перш за все, давайте розглянемо функції PHP движка. Перш за все, з його допомогою виконується навігація по контенту сайту (движок, отримавши певні змінні, повинен відображати той чи інший документ), також він може виконувати додаткові функції такі як збирання статистики відвідувань сторінок, вести лічильник відвідувачів і багато іншого.

 

Організація ядра

 

Кожен движок містить простеньку базу даних (у нашому випадку для простоти використовується звичайний текстовий файл) з посиланнями на різні документи. ТЗ ядра – отримуючи різні змінні, організувати генерацію сторінок сайту.

 

Виконання

 

Розглянемо конкретний приклад: у нас є движок сайту, який повинен генерувати сторінки, в яких знаходитися вміст розділів. Нехай це будуть розділи: news, guestbook, photos. І до всього іншого у нас матися оформлення та заголовок сайту:

 

<!DOCTYPE HTML PUBLIC “-//W3C//DTD HTML 4.0 Transitional//EN”>
<html>
<HEAD>
<TITLE> Welcome to JeyDee Home Page ;-)</TITLE>
<META HTTP-EQUIV=”Content-Type” Content=”text/html; Charset=Windows-1251″>
<META Name=”autor” Content=”(c) JeyDee, JeyDee@fm.com.ua, ICQ:7422050″>

<META NAME=”Publisher-URL” CONTENT=”JeyDee Home Page www.JeyDee.iatp.org.ua”>
<META NAME=”Publisher-Email” CONTENT=”JeyDee@fm.com.ua”>
</HEAD>
<body bgcolor=”#D6DFEF”>
<TABLE border=0 align=center width=”90%” valign=top>
<TR>
<TD width=”150″ height=”100%”>
<TABLE border=0 width=”100%” height=”100%” >
<TR>
<TD  align=”center” valign=”top”>
<table width=100%>
<TR>
<TD bgcolor=”#C2CBDB” align=center>
Розділи
</TD>
</TR>
</table>
<A href=index.php?go=author>LS[Jey]</A><BR><BR>
Новини

Гостьова

Фотографії

</TD>
</TR>
</TABLE>
</TD>
<TD width=”100%” height=”100%” valign=”top”>
<TABLE border=0 width=”100%” >
<TR>
<TD valign=”top”>

 

Цей код ми повинні виводити щоразу при зверненні до будь-якої сторінці сайту.

 

Далі ми в таблиці відображаємо вміст окремих розділів, зазначених у змінній $ go.

 

Для того щоб нам було дещо легше, і не збиватися з пантелику через зайву тексту помістимо заголовок сайту в окремий файлик “zagolovok.dat”. Тоді в движку ми просто напишемо:

 

Include (“zagolovok.dat”);

 

і весь заголовок вже відображається.

 

Здавалося б, що простіше всього зробити вибір розділів сайту за допомогою умов типу:

 

If ($go==photos) {

};

 

Але даний спосіб не буде оптимальним. Уявіть скільки вам доведеться написати, щоб зробити розділів 10, а потім у кожному розділі додати кілька сторінок! Після недовгих роздумів я дійшов висновку що простіше запам’ятовувати всі значення $ go та їх відносні посилання на розділи в одному файлі. Назвемо його “links.dat”, і запишемо туди наступне:

 

-Порожній рядок-
news
ews.html
news
news
ews.html
photos
photosphotos.html
guestbook
guestbookguestbook.php
author
authorjey.html

 

Як можна здогадатися перший рядок містить значення змінної, а наступна за нею – посилання на розділ, який необхідно відобразити. У декого може виникнути питання: “Чому перший рядок порожня, а посилання на новини повторюється? “. Все дуже просто. Справа в тому, що index.php можуть викликати з порожньою змінної $ go. За часту так і відбуватися при першому відображенні скрипта.

 

Отже, ми відобразили заголовок і у нас є значення $ go. Як же нам відобразити розділ? Нам просто потрібно просканувати файл на відповідне посилання. Це і виконує наступна частина скрипта:

 

/ / Символ перекладу рядка
$chr=chr(13).chr(10);
/ / Лічильник
$count=-1;
/ / Шлях до файлу посилань
$links=file(“links.dat”);
while ($count<count($links))
{
$count++;
$str=$links[$count];
if ($go.$chr==$str)
{
$count++;
$str=$links[$count];
$tok = strtok($str,”
“);
/ / Отримали посилання на розділ і відобразили:
include($tok);
break;
}
}
 

Детальніше про його роботу. Скрипт проходить по файлу і порівнює всі рядки. Як тільки він знайде рядок, яка збігається з значенням змінної $ go, ми зчитуємо наступний рядок, і виводимо розділ, на який вказує це посилання.

 

Зручність цього методу в тому, що ви з легкістю можете переміщати розділи не боячись при цьому невідповідності посилань. Наприклад, якщо ви написали десь на форумі посилання на якийсь розділ, а потім цей розділ перейменували або перемістили, то вам потрібно лише підправити посилання на розділ і все, ніхто й не помітить що відбулися якісь зміни.

 

Зауваження

 

Будьте уважні і обережні, тому що при використанні движка можуть працювати некоректно відносні шляхи до файлів (тобто якщо картинки гостьовий лежать в “guestbook / img”, то відображати їх скрипт гостьової повинен не зі своєї папки “img”, а з кореня движка, тобто з “guestbook / img”).

 

Висновок

 

Написати движок для сайту зовсім не важко, і не так страшно як здавалося б. Для тих, у кого є елементарні знання в PHP і невеликі навики роботи з файлами цю справу і зовсім не виявиться складним.

 

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*