Динамическая страница на PHP.

PHP. Динамическое создание страниц

В сети Интернет существует огромное количество web-сайтов. Все эти сайты можно разделить на два типа: статические и динамические. Сегодня мы поговорим о создании динамических страниц, но сперва я хотел бы Вам рассказать что такое статический и динамический сайт (страница).

Статические сайты

  • Простота и дешевизна создания, нетребовательность к аппаратным ресурсам;
  • Минимальная нагрузка на web-сервер.
  • Большие временные затраты на редактирование контента;
  • Нецелесообразность использования в крупных проектах.

Динамические сайты

Динамические сайты состоят из динамических web-страниц, которые могут реагировать на действия пользователя и изменяться. Такие страницы формируются web-сервером из нескольких файлов (шаблонов). Вся информация хранится в базе данных.

Когда пользователь запрашивает страницу, соответствующая информация извлекается из базы, вставляется в шаблон, образуя web-страницу, и пересылается web-сервером в пользовательский браузер.

Таким образом, при обновлении содержимого сайта, необходимо просто добавить текст для новой страницы, который затем вставляется в базу данных с помощью определенного механизма.

  • Управление контентом производится через специальные формы, где можно легко добавлять, редактировать и удалять информацию;
  • Максимальная оперативность при добавлении нового контента на сайт;
  • При добавлении или редактировании контента не требуется специальных знаний из области web-мастеринга (HTML, CSS);
  • Возможность создания крупных многофункциональных проектов;
  • Большие возможности для раскрутки.
  • Высокая стоимость создания и обслуживания;
  • Нужно обладать соответствующими знаниями для поддержания работоспособности сайта.

Лучше всего делать сайт с помощью динамических страниц т.к. это лучший и удобный выбор. Ну а теперь поговорим о создании динамических страниц.

Простые ссылки

Прежде чем изучать язык программирования PHP вы уже должны знать HTML и конечно же создание гиперссылок. Хотелось бы Вам напомнить:

Если щелкнуть по ссылке, в браузере будет загружена страница с именем example.php. Теперь посмотрим как, можно воспользоваться переменной для построения динамической ссылки:

Вот так просто создается динамическая гиперссылка с помощью языка php.

Процесс создания динамической страницы

Процесс создания динамической страницы состоит из нескольких этапов:

Сверстаем каркас страницы. Назовем страницу index.php — она будет состоять из частей: шапка (header), подвал (footer), левое меню (leftmenu).

Читайте также:  Чем отличается mock от stub java

В данном примере рассмотрим верстку страниц на основе таблиц, но можно использовать и блочную версту.

1. Формируем файл header.php.

     

Шапка сайта


2. Формируем файл leftmenu.php.

3. Формируем файл footer.php.

Создайте папку под названием template, в которую скопируйте полученные файлы. При необходимости редактирования шапки, левого меню или подвала сайта, Вы будете знать, что шаблоны этих частей сайта находятся в данной папке.

Подключим полученные файлы (шаблоны) к сайту с помощью инструкции include на примере страницы index.php.

Привет!

Это первая динамическая страница на PHP.

Вот так страница index.php — это динамическая страница, она будет формироваться из нескольких файлов (шаблонов).

Таких шаблонов можно сделать любое количество. При необходимости изменения какой-либо части сайта достаточно найти нужный файл шаблона и отредактировать его.

На этом создание динамических страниц окончено. Думаю вы поняли смысл и практичность динамических сайтов и на основе примера сможете создать большой проект. Да и не забывайте комментировать Ваш код — это очень важно друзья! Удачи Вам!

P.S. Небольшие изменения от 06.07.2019 года:

Так как программирование развивается всегда поэтому и программист должен развиваться со скоростью света.

Табличная верстка показанная выше в наше время мало применяется на практике и необходима только для изучения начинающим программистам.

Если вы хотите создавать новые и эффективные web-сайты, тогда рекомендуем использовать не табличную верстку, а блочную верстку. Рассмотрим подробнее.

Таблицы придуманы именно для вывода табличных данных, а не для разметки элементов страницы. То, что расположено в таблице:

может быть представлено в виде блочной (дивовой) верстки:

это занимает гораздо меньший объем дискового пространства.

Рассмотрим преимущества блочной верстки по сравнению с табличной:

  1. Существенное уменьшение размера страницы, как правило в 2–3 раза, что значительно уменьшает время загрузки web-сайта. При этом незначительно вырастет размер CSS-файла, но, благодаря тому, что он единожды кэшируется браузером юзера и при обращении к другим страницам считывается уже с его компьютера, в результате сайт грузится гораздо быстрее, чем табличный.
  2. Значительно удобнее менять оформление страниц сайта, вынесенное в CSS-файл. При этом практически отсутствует необходимость редактирования HTML-кода.
  3. Благодаря возможностям блочной верстки можно добиться того, что в коде сначала пойдет основной контент страницы, а только потом шапка, левая и/или правая колонки. При этом внешний вид страницы совершенно не изменится.
  4. Визуально приятна прозрачность кода блочной страницы – нет никаких нагромождений тегов, все очень красиво и компактно.
Читайте также:  Добавить символ начало строки php

Источник

Создание страниц PHP – печатаем сайт налету!

От автора: вы когда-нибудь наблюдали за работой талантливых писателей? У меня есть один знакомый из «таких». Свои произведения он печатает на машинке: считает, что компьютер не способен принять всю «полноту его мыслей». А я ему в ответ говорю, что он так же, как и любая программа, всего лишь умело манипулирует строковыми значениями переменных. В общем, каждый остался при своем мнении. Сегодня мы рассмотрим создание страниц PHP, чтобы доказать, что этот язык программирования обладает огромным талантом.

Динамический талант

На проявление таланта любого автора (знаю по себе) могут влиять множество «сопутствующих» факторов: собственное настроение, погода и другие «ненастья». Но PHP «наплевать» на погоду за окном или ворчание жены за поломанный кран :). Он выполняет заложенный в него код. Причем делает это не просто так, а динамично: формируя (собирая) страницы налету.
Сегодня я постараюсь на несложны примерах продемонстрировать часто применяемые методы реализации динамичности на основе PHP:

Использование одного шаблона для создания нескольких веб-страниц.

Интеграция кода PHP в HTML.

Онлайн курс «PHP-разработчик»

Изучите курс и создайте полноценный проект — облачное хранилище файлов

С нуля освоите язык программирования PHP, структурируете имеющиеся знания, а эксперты помогут разобраться с трудными для понимания темами, попрактикуетесь на реальных задачах. Напишете первый проект для портфолио.

Начнем рассмотрение динамического создания страниц на PHP c последнего пункта. Поскольку для изучения первых двух требуется знание третьего. Стартуем!

Разметка основного примера

Сейчас за пару минут «набросаю» разметку самой простой страницы на HTML без особых «изысков».

Источник

Генерация html на PHP

Предлагаю вашему вниманию свое решение по генерации html на PHP. Задача вроде бы тривиальная, но хотелось бы, чтобы это было расширяемо, кратко, но в тоже время с хорошим функционалом. Получилось вроде не плохо.

Читайте также:  Javascript или css меню

Сразу скажу( как многие считают в комментариях), что задача ставилось не написать шаблонизатор (которых и так много) и не заменить шаблонизатор JavaScript. Я прекрасно знаю, что true way это разделять html и данные. Но мне понадобилось писать html в классах, для создания компонентов фреймворка, на подобие CGridView в yii, стоит ли в таких местах выносить html в отдельные файлы решать вам.

Основная цель, избавится от html в классах и функциях.

Простой пример, обычная кнопка:

CHtml::create() ->p() ->a(array('href' => 'http://habrahabr.ru', 'class' => 'btn')) ->text('Перейти') ->render(); 

Ничего хитрого, можно было бы этим и ограничется, но захотелось циклы:

 $arr = array('1' => 'Первый', '2' => 'Второй'); CHtml::create() ->select($options) ->each(CHtml::plainArray($arr, 'value', 'text')) ->option('array("value" => $data->value)') ->text('$data->text') ->end() ->endEach() 
$arr = array( array('value' => '1', 'text' =>'Первый'), array('value' => '2', 'text' => 'Второй') ); 

Теги внутри цикла могут содержать функции или строки с eval выражениями, вложенность любая, пример с таблицей:

$columns = array( array('id' => 'NAME', 'label' => 'Имя'), array('id' => 'AGE', 'label' => 'Возраст') ); $data = array( array('NAME' => 'Петр', 'AGE' => 29), array('NAME' => 'Василий', 'AGE' => 32) ); CHtml::create() ->table() ->thead() ->tr() ->each($columns) ->th() ->text(function($column)< return $column['label']; >) ->end() ->endEach() ->end() ->end() ->tbody() ->each($data) ->tr() ->each($columns) ->td() ->text(function($row, $column) < return $row[$column['id']]; >) ->end() ->endEach() ->end() ->endEach() ->render(); 

Незакрытые теги закрываются автоматически.

Класс можно расширить, вплоть до использования в формах. Расширить можно за счет наследования или внедрения зависимости, за то, как будет выводится каждый тег и его атрибуты используется одна функция, поэтому можно легко переопределить это поведение.

 class CMyHtml extends CHtml < public function a($options = array()) < $default = array( 'href' =>'javascript:void(0)' ); return parent::a(array_replace($default, $options)); > > 
class CForm < private $_lastLabel = ''; public function __construct(CModel $model, CHtml $html = null) < $this->_model = $model; $this->_html = $html ?: CHtml::create(); > public function __call($method, $ps) < $options = $ps ? $ps[0]: array(); if ($method === 'label') < $this->_lastLabel = isset($options['for']) ? $this->_model->getLabel($options['for']) : ''; > if ($method === 'text' && $this->_lastLabel) < $options = $options ?: $this->_lastLabel; $this->_lastLabel = ''; > $this->_html->$method($options); return $this; > > 

Само решение можно посмотреть и попробовать на github.

Источник

Оцените статью