Создадим страницу template1.php с шаблоном html-кода.
<!DOCTYPE HTML>
<!-- ВИД -->
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title><?php echo $page_title; ?></title>
</head>
<body>
<h1><?php echo $page_title; ?></h1>
<p><?php echo $content; ?></p>
</body>
</html>
Создадим файл template_variable.php. По сути это будет страница-контролер.
<?php
// контроллер
$page_title = "Template Test";
$content = "This is a test of templating using variables.";
include('template1.php');
?>
Второй способ делать шаблоны - с помощью поиска и замены. В этом способе мы теряем доступ ко многим методам PHP. Подойдет для простого шаблонирования.
Создадим файл template_replace.php
<?php
// функция выполняет поиск и замену
// $filename - имя файла, которое нужно загрузить и
// $assigned_vars - массив, присваемых переменных, которые нужно искать и заменять
function display_template($filename, $assigned_vars) {
if(file_exists($filename)) {
$output = file_get_contents($filename); // file_get_contents — Читает содержимое файла в строку
foreach($assigned_vars as $key => $value) {
$output = preg_replace('/{'.$key.'}/', $value, $output);
}
echo $output;
} else {
echo "*** Missing template error ***";
}
}
$template = "template2.php";
$assigned_vars = array('page_title' => "Template test", 'content' => "This is a test of templating using variables.");
display_template($template, $assigned_vars);
?>
Создадим файл template2.php Здесь не будет кода PHP
<!DOCTYPE HTML>
<!-- ВИД -->
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>{page_title}</title>
</head>
<body>
<h1>{page_title}</h1>
<p>{content}</p>
</body>
</html>
Сделаем объектно-ориентированную версию.
<?php
class Template {
public $filename;
public $assigned_vars = array();
public function set($key, $value) {
$this->assigned_vars[$key] = $value;
}
public function display() {
if(file_exists($this->filename)) {
$output = file_get_contents($this->filename); // file_get_contents — Читает содержимое файла в строку
foreach($this->assigned_vars as $key => $value) {
$output = preg_replace('/{'.$key.'}/', $value, $output);
}
echo $output;
} else {
echo "*** Missing template error ***";
}
}
}
$template = new Template();
$template->filename = "template2.php";
$template->set('page_title', "Template test");
$template->set('content', "This is a test of templating using variables.");
$template->display();
?>
<!DOCTYPE HTML>
<!-- ВИД -->
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title><?php echo $page_title; ?></title>
</head>
<body>
<h1><?php echo $page_title; ?></h1>
<p><?php echo $content; ?></p>
</body>
</html>
Создадим файл template_variable.php. По сути это будет страница-контролер.
<?php
// контроллер
$page_title = "Template Test";
$content = "This is a test of templating using variables.";
include('template1.php');
?>
Второй способ делать шаблоны - с помощью поиска и замены. В этом способе мы теряем доступ ко многим методам PHP. Подойдет для простого шаблонирования.
Создадим файл template_replace.php
<?php
// функция выполняет поиск и замену
// $filename - имя файла, которое нужно загрузить и
// $assigned_vars - массив, присваемых переменных, которые нужно искать и заменять
function display_template($filename, $assigned_vars) {
if(file_exists($filename)) {
$output = file_get_contents($filename); // file_get_contents — Читает содержимое файла в строку
foreach($assigned_vars as $key => $value) {
$output = preg_replace('/{'.$key.'}/', $value, $output);
}
echo $output;
} else {
echo "*** Missing template error ***";
}
}
$template = "template2.php";
$assigned_vars = array('page_title' => "Template test", 'content' => "This is a test of templating using variables.");
display_template($template, $assigned_vars);
?>
Создадим файл template2.php Здесь не будет кода PHP
<!DOCTYPE HTML>
<!-- ВИД -->
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>{page_title}</title>
</head>
<body>
<h1>{page_title}</h1>
<p>{content}</p>
</body>
</html>
Сделаем объектно-ориентированную версию.
<?php
class Template {
public $filename;
public $assigned_vars = array();
public function set($key, $value) {
$this->assigned_vars[$key] = $value;
}
public function display() {
if(file_exists($this->filename)) {
$output = file_get_contents($this->filename); // file_get_contents — Читает содержимое файла в строку
foreach($this->assigned_vars as $key => $value) {
$output = preg_replace('/{'.$key.'}/', $value, $output);
}
echo $output;
} else {
echo "*** Missing template error ***";
}
}
}
$template = new Template();
$template->filename = "template2.php";
$template->set('page_title', "Template test");
$template->set('content', "This is a test of templating using variables.");
$template->display();
?>
Комментариев нет:
Отправить комментарий