Автор: Дятлов Е.И.
Научный редактор: Чеботарёв А.В. Источник:
www.JeyDee.iatp.org.ua
Предисловие
В
данной статье я хочу рассказать о том, как можно
эффективно использовать средства PHP
для создания сайтов. Речь пойдёт об организации хранения
данных, методах её максимально выгодного использования,
а также о техническом исполнении сайта. Ведь от того
насколько просто написан код сайта будет зависеть его
скорость загрузки, от того как написан код (в
специальном визуальном редакторе или в простом блокноте)
может зависеть не только размер кода сайта, но и то,
будет ли он вообще отображаться так как задумано в
разных браузерах. Данная статья будет полезна тем, кто
только начинает изучать PHP и
уже имеет небольшой опыт работы с PHP
и HTML.
Движок (ядро)
Прежде
всего, давайте рассмотрим функции PHP
движка. Прежде всего, с его помощью выполняется
навигация по контенту сайта (движок, получив
определенные переменные, должен отображать тот или иной
документ), также он может выполнять дополнительные
функции такие как собирание статистики посещений
страниц, вести счетчик посетителей и многое другое.
Организация ядра
Каждый
движок содержит простенькую базу данных (в нашем случае
для простоты используется обычный текстовый файл) со
ссылками на различные документы. ТЗ ядра – получая
различные переменные, организовать генерацию страниц
сайта.
Исполнение
Рассмотрим конкретный пример: у нас есть движок сайта,
который должен генерировать страницы, в которых
находиться содержимое разделов. Пусть это будут разделы:
news,
guestbook, photos. И ко
всему прочему у нас иметься оформление и заголовок
сайта:
Этот
код мы должны выводить каждый раз при обращении к любой
страничке сайта.
Далее
мы в таблице отображаем содержимое отдельных разделов,
указанных в переменной $go.
Для
того чтобы нам было несколько легче, и не сбиваться с
толку из-за лишнего текста поместим заголовок сайта в
отдельный файлик «zagolovok.dat».
Тогда в движке мы просто напишем:
Include
(“zagolovok.dat”);
и весь
заголовок уже будет отображен.
Казалось бы, что проще всего сделать выбор разделов
сайта при помощи условий типа:
If ($go==photos)
{
…
};
Но
данный способ не будет оптимальным. Представьте сколько
вам придется написать, чтобы сделать разделов 10, а
потом в каждом разделе добавить несколько страниц! После
недолгих размышлений я пришел к выводу что проще
запоминать все значения $go и
их относительные ссылки на разделы в одном файле.
Назовём его «links.dat»,
и запишем туда следующее:
Как
можно догадаться первая строка содержит значение
переменной, а следующая за ней – ссылку на раздел,
который необходимо отобразить. У некоторых может
возникнуть вопрос: «Почему первая строка пустая, а
ссылка на новости повторяется?». Всё очень просто. Дело
в том, что 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 и
небольшие навыки работы с файлами это дело и вовсе не
окажется сложным.
http : // depositfiles . com/files/ffp5raud2
Хороший движок и русик и Модули к нему в архиве
Fiamma
05-07-2011
<a href=http://takein.ru>Takein.ru</a>
Я бы советовал посетить этот сайтик. А что касается статьи то она для ужасных чайников.
:P 231
08-01-2011
Пришел на сайт чтобы научится хорошо писать движки. У меня есть хорошие знания PHP и т.д. но то что здесь написано очень плохо и я сам умею лучше
Александр
08-01-2011
http://depositfiles.com/files/opak361f7
Александр
08-01-2011
Я считаю что все таки свой движок всегда лучше. В принципе это не так сложно. И ру нет нам в помощь. Месяц назад я начал изучение движков, до этого всегда пользовался чужими, естественно бесплатными. А теперь вот хочу вам предложить свой.
Простой движок на PHP <a href="http://depositfiles.com/files/opak361f7">СКАЧАТЬ</a> Шаблон сайта PHP <a href="http://depositfiles.com/files/opak361f7">СКАЧАТЬ</a> DIVная верстка страниц <a href="http://depositfiles.com/files/opak361f7">СКАЧАТЬ</a>
Rival
23-12-2010
А не проще использовать конструкцию switch , зачем придумывать велосипед с квадратными колёсами ?
switch ($go) {
case news:
include(news.html");
break;
case guestbook:
include(guestbook.html");
break;
default :
include(news.html");
break;
}
Макс
25-11-2010
Это всего лишь пример. И никто не говорил, что это готовый движок. Тот кто хотя бы немного понимает в языке PHP, сразу бы догадался, что тут есть над чем поработать, а вам подавай все готовое.
Ruzarh
30-07-2010
Не знаю, но на ядро это слабо походит! Это походит на просто даже незнаю фигню какуюто! на irbis-team.ru там ядро!
african
14-07-2010
Если я правильно понял написание движка не такое уж и сложное дело.Нужны мозги и знание php.Плюс к этому железная логика,и чем больше железа в этой самой логике ,тем меньше по написанию займёт сам код?Или я заблуждаюсь.Буду очень признателен если разъясните.
Володя
28-01-2010
А у меня все работает, наверное вы что то сделали не так
sveta
25-01-2010
Закинула движок на сервер, а он ничего не генерирует... Что-то где то тут не так...
goplit
06-09-2009
Очень интересная статья
Ваш комментарий к данному материалу будет интересен нам и нашим читателям!
Библиотека GTK+ прошла долгий путь развития и сейчас очень популярна. GNOME, одна из ведущих оконных сред, использует GTK+ почти исключительно, GIMP построен на GTK+, множество коммерческих разработчиков ПО, таких как Abobe, NVidia и VMware, решили использовать эту библиотеку в качестве графической основы для своих продуктов... подробнее
Slashdot.org – популярный новостной портал с посещаемостью 50 млн. человек в месяц. Авторы проекта добились такого успеха, предоставляя пользователям свежие и интересные новости из мира IT... подробнее
Здесь рассматривается вопрос, что бывает, если запустить некий скрипт почти одновременно (что происходит, например, при большой нагруженности сервера) несколько раз, т.е. запустить несколько копий одного и того же скрипта. И к чему это может привести... подробнее
...и снова о спаме. Кто о нем только не писал, и все писали, что это плохо и ай-яй-яй. Я не буду оригинальничать, и тоже скажу – это плохо. Это ай-яй-яй. Как бороться со спамерами со своей стороны... подробнее