Шаблонизатор - основной скрипт сайта на php

Напишем один из основных php скриптов сайта шаблонизатор, которому определено уже место и название в нашем проекте D://Mysitephp/php/main.php. Но прежде напишем php скрипт файла index.php, который будет находиться в корне сайта и перенаправлять его загрузку, в частности его главной страницы на main.php.

Файл скрипта index.php будет состоять всего лишь из трех строк.

<?php
include "php/main.php";
?>

Как работает этот php скрипт? Достаточно просто. При попадании пользователя на главную страницу сайта index.php будет подключен скрипт шаблонизатора, тоесть main.php, который находится в папке php.

Не будем останавливаться на операторе include. Об этом можно почитать в справочнике по php, о котором шла речь ранее. А для информации: Оператор include() подключает и вычисляет специфицированный файл. Когда файл подключён/included, содержащийся в нём код наследует область видимости переменной строки, на которой возникло подключение. Любые переменные, доступные на этой строке в вызывающем файле, будут доступны в вызываемом файле, вперёд от этой точки. Простыми словами оператор include подключает в работу скрипт прописанный в файле путь к которому заключен в "..." и находится в строке сразу после самого слова include, тоесть в нашем случае main.php.

Ну, а сам main.php будет посложнее:

<?php

// Строка для уменьшения уровня предупреждений сервера Denwer
Error_Reporting(E_ALL & ~E_NOTICE);

// строки необходимые для выполнения любых операций по методам Get и Post
if(isset($_GET)) {foreach ($_GET as $key=>$val) {$$key=$val;}}
if(isset($_POST)){foreach ($_POST as $key=>$val){$$key=$val;}}

// загрузка в переменные, в виде строк, содержимого страниц и меню
$title = "Титул страницы";
$meta = file_get_contents ("templates/pages/meta/rub1_part1_meta.html");
$text = file_get_contents ("templates/pages/rub1_part1.html");
$titlepage = "Заголовок страницы";
$rubric1 = "Меню рубрики 1";
$rubric2 = "Меню рубрики 2";
$rubric3 = "Меню рубрики 3";

// функция по перемещению и замене строк в частях шаблона на содержимое переменных
function repl ($path)
{
// определение глобальных переменных
global $title,$meta,$titlepage,$text,$rubric1,$rubric2,$rubric3;

// чтение файла в виде строки в переменную $temp
$temp = file_get_contents($path);

// перемещение участков в строке загруженной в $temp
$temp = str_replace ( "%title%", $title, $temp );
$temp = str_replace ( "%meta%", $meta, $temp );
$temp = str_replace ( "%titlepage%", $titlepage, $temp );
$temp = str_replace ( "%text%", $text, $temp );
$temp = str_replace ( "%rubric1%", $rubric1, $temp );
$temp = str_replace ( "%rubric2%", $rubric2, $temp );
$temp = str_replace ( "%rubric3%", $rubric3, $temp );

// вывод измененной строки содержащейся в переменной $temp
echo ("$temp");
}

// поочередный запуск в работу функции repl для файлов top.html body.html bottom.html

repl ("templates/top.html");
repl ("templates/body.html");
repl ("templates/bottom.html");

exit;

?>

Теперь несколько слов по данному php скрипту. Но прежде, чем прочитать краткий комментарий к данному скрипту нужно не забыть открыть справочник по php о котором шла речь чуть выше на данной странице. Работает скрипт предельно просто. Сначала он загружает с помощью функции file_get_contents () в переменные в виде строк содержимое титлов, страниц, мета описаний сайта, меню. Затем начинает работать уже наша новоиспеченная функция repl (), которая последовательно выполняет операции по загрузке в переменную $temp частей нашего шаблона top.html, body.html, bottom.html, (все та же функция file_get_contents () в составе функции repl ()), а затем с помощью функции str_replace () перемещает содержимое переменных в которых уже содержатся страницы, мета описания, меню сайта, на места заключенные в %% и все это затем выводит оператором echo (). В результате получается, что-то вроде пазлов, которые скрипт устанавливает в нужные места, а в браузере это уже выглядит, как шаблон с содержимым титлов, страниц, мета описаний, меню и т. д. Для того, чтобы в комплексе проверить работу скрипта, необходимо запустить сервер Denwer, который кстати уже давно должен быть запущен, на всякий случай выполнить операцию синхронизации проекта сайта и набрать в браузере http://mysitephp.ru. Результат не заставит себя ожидать. Появится индексная страница шаблона, а теперь можно сказать уже даже будущего сайта на php с титулом, мета описанием, заголовком и текстом самой страницы, который прописан в файле templates/pages/rub1_part1.html. Для уверенности можно скачать обновленный проект со скриптами и сравнить с тем, что получилось в результате выше описанных действий. Затем, чтобы исключить разночтения в процессе построения сайта на php, заменить проект на скачанный с обязательным выполнением операции синхронизации.

Top.Mail.Ru