+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 92.51 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

Пишем движок для сайта на PHP (v.2.0)

19.05.2011 12:08

Автор: Дятлов Е.И.
Научный редактор: Чеботарёв А.В.

Предисловие

В данной статье я хочу рассказать о том, как можно эффективно использовать средства 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="description" Content="Домашняя страничка Jey'я!">
<META NAME="Publisher-URL" CONTENT="JeyDee Home Page www.JeyDee.iatp.org.ua">
<META NAME="Publisher-Email" CONTENT="JeyDee@fm.com.ua">
<META NAME="Keywords" CONTENT="Мой сайт";
</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%" style="border: 1px solid #949EAD">
 <TR>
 <TD  align="center" valign="top">
 <table width=100%>
<TR>
<TD bgcolor="#C2CBDB" align=center>
<I><B><font size=4 color="#000000">Разделы</font></B></I>
</TD>
</TR>
</table>
<A href='index.php?go=author'>LS[Jey]</A><BR><BR>
<A href='index.php?go=news'>Новости</A><BR>
<A href='index.php?go=guestbook'>Гостевая</A><BR>
<A href='index.php?go=photos'>Фотографии</A><BR>
  </TD>
 </TR>
 </TABLE>
</TD>
<TD width="100%" height="100%" valign="top">
 <TABLE border=0 width="100%" style="border: 1px solid #949EAD">
  <TR>
  <TD valign="top">
 

Этот код мы должны выводить каждый раз при обращении к любой страничке сайта.

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

 Для того чтобы нам было несколько легче, и не сбиваться с толку из-за лишнего текста поместим заголовок сайта в отдельный файлик "zagolovok.dat". Тогда в движке мы просто напишем:

  Include ("zagolovok.dat");

 и весь заголовок уже будет отображен.

 Казалось бы, что проще всего сделать выбор разделов сайта при помощи условий типа:

  If ($go==photos) {

};  

Но данный способ не будет оптимальным. Представьте сколько вам придется написать, чтобы сделать разделов 10, а потом в каждом разделе добавить несколько страниц! После недолгих размышлений я пришел к выводу что проще запоминать все значения $go и их относительные ссылки на разделы в одном файле. Назовём его "links.dat", и запишем туда следующее:

  -пустая строка-
news\news.html
news
news\news.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 и небольшие навыки работы с файлами это дело и вовсе не окажется сложным.

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года