4369

Создание статических сайтов с помощью PHP

Лекция

Информатика, кибернетика и программирование

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

Русский

2012-11-18

74.5 KB

21 чел.

Создание статических сайтов с помощью PHP

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

Генерирование страниц на стороне сервера позволяет отделить данные (полезная информация) от описания способа их форматирования (шаблона). В настоящее время существует несколько технологий генерирования (обработки) страниц на стороне сервера. Одной из наиболее распространенных технологий является PHP. Расшифровывается PHP как Personal Home Page Tools (средства разработки личной домашней страницы). Первая версия интерпретатора языка PHP была разработана в 1994 году Расмусом Лердорфом. В настоящий момент разработчикам доступна четвертая версия интерпретатора PHP, а в скором будущем планируется выход пятой версии.

PHP является кросс-платформенным программным продуктом. Программы, написанные на языке PHP, называются скриптами. Скрипты могут генерировать HTML страницы, обрабатывать данные, полученные от HTML-форм, обращаться к командам операционной системы, хранить данные во внешних файлах, использовать в качестве хранилища данных широкий спектр СУБД. В настоящее время реализовано большое количество библиотек, расширяющих функциональность PHP.

Код PHP-программы хранится в виде простого текста в формате ASCII, поэтому создавать скрипты можно в любом текстовом редакторе, например vi (при работе с ОС UNIX) или Notepad (ОС Windows). Как правило, PHP-скрипт представляет собой набор инструкций, встраиваемых в HTML страницу. При обращении к странице, сервер интерпретирует инструкции и возвращает обработанную страницу клиенту.

Ниже приведен пример простейшего PHP-скрипта, создающего страницу, содержащую строку "Hello world!".

<html>

<body>

<?php echo ("Hello world!"); ?>

</body>

</html>

Созданный файл (test.php) выложим на сервер в каталог, доступный для обработки интерпретатором PHP (например в корневой каталог сервера, имеющего адрес http://www.mysite.com). Скрипт будет доступен по адресу http://www.mysite.com/test.php .

Веб-сервер, получив запрос на выдачу документа с расширением php, запустит интерпретатор языка PHP. Интерпретатор начнет построчно анализировать файл в поисках php-инструкций. В приведенной выше программе содержится одна инструкция <?php echo ("Hello world!"); ?> . Данная инструкция дает интерпретатору указание добавить в анализируемый документ строку "Hello world!". Инструкции языка HTML интерпретатором не анализируются и остаются в неизменном виде. В результате, клиент получит документ, содержащий следующие строки:

<html>

<body>

Hello world!

</body>

</html>

Браузер интерпретирует инструкции языка HTML и выдает на экран надпись "Hello world!".

В приведенном выше примере для выделения инструкций языка PHP из тела HTML-страницы были использованы тэги <?php и ?>. Однако существуют и другие способы выделения PHP-инструкций:

<? echo ("Hello world!"); ?>

<script language="PHP"> echo ("Hello world!"); </script>

<% echo ("Hello world!"); %>

В зависимости от настроек сервера, можно использовать либо один из перечисленных вариантов, либо сразу несколько. Между тэгами, выделяющими блок PHP внутри HTML-страницы может располагаться неограниченное количество инструкций. Количество блоков, содержащих PHP-инструкции так же не ограничено. Инструкции внутри одного блока должны отделяться друг от друга символом "точка с запятой". В случае, если между инструкциями отсутствует разделитель, синтаксический анализатор PHP выдаст сообщение об ошибке. Ниже приведен пример PHP-скрипта, содержащего несколько инструкций.

Скрипт

Результат работы скрипта

<html>

<body>

<? echo ("Hello world!"); ?>

<br>

<? echo ("Text generated ");

echo "by PHP"; ?>

</body>

</html>

<html>

<body>

Hello world!

<br>

Text generated by PHP

</body>

</html>

В данном примере инструкции PHP расположены в двух блоках, причем во втором блоке расположены две инструкции. Функции "echo", организующей добавление строк в HTML-страницу можно, передавать аргумент как в скобках, так и без них.

PHP позволяет разработчику встраивать в обрабатываемую страницу блоки инструкций, интерпретируемых клиентом (блоки JavaScript).

<html>

<body>

<?

echo ("<script language="JavaScript"> alert('Hello!'); </script>");

?>

</body>

</html>

Данная программа работает следующим образом. На первом этапе интерпретатор языка PHP анализирует текст страницы и встраивает в нее строку при помощи функции echo. Содержимое строки echo может иметь произвольное содержимое и не анализируется интерпретатором. На втором этапе сформированная страница высылается браузеру. Браузер начинает анализировать HTML-инструкции и находит в теле страницы блок инструкций JavaScript. Далее происходит запуск интерпретатора языка JavaScript, который отображает диалог с сообщением "Hello!".

Таким образом средствами PHP была сформирована страница, содержащая элементы программы, исполняемой на стороне клиента.

В РНР есть три основных типа данных: целое число (integer), действительное число (double) и строка (string). У каждой переменной есть свой тип, однако тип переменной может меняться на лету, когда изменяется значение переменной или иным программным образом.

2 // Это целое число

2.0 // Это действительное число

"2" // Это строка

"2 hours" // Это тоже строка

В РНР начиная с версии 4 определен логический данных также присутствует. Для целых чисел 0 (ноль) вычисляется как FALSE, а любое ненулевое целое значение - как TRUE. Аналогично, действительное значение 0,0 (или такие его эквиваленты, как 0,000) вычисляются как FALSE, а ненулевые значения вычисляются как TRUE. Что касается строк, то пустая строка вычисляется как FALSE. Она представляется парой кавычек, между которыми ничего нет. Все непустые строки вычисляются как TRUE.

Константы - это неизменные значения.

Для создания констант используется функция define() :

define("NAME", "Иван");

define("VERSION", 3);

В отличие от констант, переменные автоматически объявляются в РНР при присвоении им значений. Присвоение осуществляется с помощью оператора присваивания (=). Имя переменной обязательно начинается с символа $ .

$name = "Иван";

$value1 = 22;

$value2 = 5.00;

Тип переменной автоматически определяется значением, присвоенным этой переменной.

$а = 1; // $а - целое

$а = 1.2; // теперь это число с плавающей запятой

$а = "А"; // теперь это строка

При выполнении над строкой числовой операции РНР переводит строку в число. В следующем примере переменной $str присваивается строковое значение:

$str = "222В Baker Street";

$х = 3 + $str; // $х = 225;

При преобразовании строк соблюдаются следующие правила:

  •  В число переводится только начало строки. Если строка начинается с допустимого численного значения, она будет переведена в это значение, в противном случае - в ноль. Строка "3rd degree" переводится в 3 при использовании в числовой операции, но "Catch 22" будет переведена в О (ноль).
  •  Строка переводится в число с плавающей запятой только в случае, если представляемое число занимает всю строку. Строки "3,4", "-4,01" и "4,200" переводятся в действительные числа 3,4, -4,01 и 4,200. Однако если строка включает другие символы, не представляющие действительное число, она переводится в целое. Например, строка "3,4 children" переводится в целое число 3, а строка " -4,01 degrees" переводится в целое число -4.

Помимо преобразования строк РНР производит приведение различных числовых типов. Если выполняется числовая операция над числом с плавающей запятой и целым, то результат будет числом с плавающей запятой:

$а = 1; // $а - целое

$b = 1.0; // $b - число с плавающей запятой

$с = $а +$b; // $с - число с плавающей запятой (значение 2,0)

$d = $с +"6th" // $d - число с плавающей запятой (значение 8,0)

При задании строк, в PHP можно использовать как одинарные, так и двойные кавычки. Использование двойных кавычек позволяет динамически подставлять в строку значения переменных. Одинарные кавычки такой возможности не предоставляют.

$username=’Иванов’;

echo "Здравствуйте, $username"; // Здравствуйте, Иванов

echo ’Здравствуйте, $username’; // Здравствуйте, $username

В РНР реализованы базовые математические операторы:

Оператор

Операция

Пример

Результат

+

Сложение

7+2

9

-

Вычитание

7-2

5

*

Умножение

7*2

14

/

Деление

7/2

3,5

%

Деление по модулю

7%2

1

Оператор точка (.) используется в РНР как оператор конкатенации для соединения двух и более строковых значений в одну строку.

// Следующий код выводит "Иванов Иван Иванович"

$first = "Иван";

$last = "Иванов";

$full = $last." ".$first; // Иванов Иван

echo $full." Иванович"; // Иванов Иван Иванович

В РНР можно использовать сокращенные операторы в командах присваивания, для которых первый операнд является переменной, а результат присваивается той же переменной. Ниже приведен список сокращенных операторов:

 

Оператор

Эквивалент

$h += $i

$h = $h + $i

$h -= $i

$h = $h - $i

$h *= $i

$h = $h * $i

$h /= $i

$h = $h / $i

$h %= $i

$h = $h % $i

$h .= $i

$h = $h . $i

$h++

$h = $h + 1

$h--

$h = $h - 1

Операторы сравнения используются для проверки условия.

Оператор

Значение

Пример

Имеет значение true, если:

==

Равно

$h == $i

$h и $i имеют равные значения

<

Меньше

$h < $i

$h меньше $i

>

Больше

$h > $i

$h больше $i

<=

Меньше или равно

$h <= $i

$h меньше или равно $i

>=

Больше или равно

$h >= $i

$h больше или равно $i

!=

Не равно

$h != $i

$h не равно $i

<>

Не равно

$h <> $i

$h не равно $i

Условные операторы позволяют определять блоки кода, которые выполняются только при осуществлении некоторых условий. В РНР есть две условные конструкции. Первая из них - это if ... elseif ... else, позволяющая проверить несколько выражений и выполнить операторы в соответствии со значениями этих выражений. Если нужно сравнить одно выражение с рядом значений, то РНР предоставляет конструкцию switch ... case, упрощающую эту операцию.

Оператор if является одним из важнейших операторов, позволяющих выполнять выбранные строки кода только при истинности некоторых заданных условий. Например:

if ($h < 0) {

echo "Отрицательное число";

}

elseif ($h==0) {

echo "Ноль";

}

else {

echo "Положительное число";

}

Если при выполнении условия нужно выполнить несколько команд, то для обозначения строк, принадлежащих блоку if, используются фигурные скобки {}:

В РНР есть ключевое слово elseif для проверки альтернативных условий, если условие if оказывается не выполненным. В операторе if можно использовать любое количество операторов elseif. Последняя ветвь else позволяет указать код, который нужно выполнить, если ни одно из условий if или elseif не оказалось истинным.

Условия можно объединять с помощью логических операторов "и" (&&), "или" ( || ) :

if (($a < $b) && ($b > $c)) echo "Условия выполнены";

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

switch ($country) {

case "ca":

echo "Канада";

break;

case "ru":

echo "Россия";

break;

case "de":

echo "Германия";

break;

default:

echo "Информация отсутствует";

}

Оператор switch вычисляет значение $country и сравнивает его со всеми значениями в предложениях case. При обнаружении совпадения выполняются операторы, относящиеся к соответствующему блоку case, пока не будет обнаружен оператор. Если соответствие не обнаружено, выполняются операторы блока default. Наличие блока default не является обязательным.


 

А также другие работы, которые могут Вас заинтересовать

71720. ОПРЕДЕЛЕНИЯ ПЛОТНОСТИ СЛОЖЕНИЯ И ВОДОПРОНИЦАЕМОСТИ ПЕСЧАНЫХ ГРУНТОВ 150.5 KB
  От плотности сложения песка зависят его строительные свойства, в том числе статическая и динамическая устойчивость, деформативность, водопроницаемость и т.д. Так, например, если песок в рыхлом состоянии, то он может быть использован в качестве основания только после его уплотнения или скрепления.
71721. Физические основы низкочастотной электротерапии 203 KB
  Раздражение электрическим током определенного характера и силы у большей части органов и тканей вызывает такую же реакцию, как и естественное возбуждение. Кроме того, это воздействие можно строго дозировать как по силе, так и по времени. Это широко используется в физиологии и медицине.
71722. Физические основы высокочастотных электрических методов, применяемых в медицине 320.5 KB
  На опыте убедиться в эффективности действия электрического поля ультравысокой частоты и высокочастотного магнитного поля на хорошо проводящие электролит и плохо проводящие дистиллированная вода структуры. Действие магнитного поля на движущийся заряд.
71723. Физические свойства ЭКГ 430.5 KB
  Задача электрокардиографии заключается в том чтобы оценить работу сердца электрические процессы в сердце по биопотенциалам регистрируемым с поверхности тела человека. Эти импульсы возникают в проводящей системе сердца которая состоит из синусного узла атриовентрикулярного узла и пучка Гиса.
71724. Физические основы электропроводности биологических тканей при постоянном токе. Лечебный электрофорез и гальванизация 239 KB
  Изучить физические основы применения постоянного электрического тока с лечебной целью. Чем объясняется нарушение закона Ома при прохождении постоянного тока через биологическую ткань С чем связывают первичное действие постоянного тока Почему у анода и катода возбудимость клетки разная.
71725. Изучение импеданса живой биологической ткани 201 KB
  Изучить зависимость импеданса биологической ткани от частоты переменного тока. Определить сдвиг фаз между силой тока и напряжением при прохождении переменного тока через живую ткань. Вопросы входного контроля Что такое электрический ток Что является носителями тока в проводниках...
71726. Определение динамического коэффициента вязкости. Определение коэффициента поверхностного натяжения 465 KB
  Какие режимы течения жидкости существуют Объясните возникновение силы внутреннего трения. Напишите уравнение Ньютона для течения вязкой жидкости. Как зависит вязкость жидкости от температуры Что такое ньютоновские и неньютоновские жидкости Запишите формулу Пуазейля проанализируйте ее.
71727. Изучение поля электрического диполя 887.5 KB
  Цель работы: исследовать поле модели электрического диполя. Основные понятия теории электрического диполя Электрическим диполем называется система состоящая из двух равных по величине но противоположных по знаку точечных зарядов расположенных на расстоянии друг от друга.
71728. Измерение осмотической устойчивости эритроцитов методом светорассеяния 93.5 KB
  Виды эритроцитов в зависимости от формы. Основная функция эритроцитов заключается в транспортировке кислорода и углекислоты. во взвешенном состоянии или в изотоническом растворе соли равновесном для эритроцитов они имеют форму двояковогнутого диска и называются дискоцитами.