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 не является обязательным.


 

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

30973. Бизнес-план модернизации технологической линии по производству асбестоцементных листов на ОАО «БелАЦИ» 700 KB
  В данной работе предстоит проанализировать структуру и жизнедеятельность ОАО «БелАЦИ», его положение на рынке, сильные и слабые стороны; разработать план маркетинга, включающего маркетинговую стратегию, каналы распространения и эффективные рыночные коммуникации, позволяющего занимать стабильное положение на рынке
30974. ИММУНОГЕНЕТИКА 16.11 KB
  Начало иммуногенетики животных связывают с работами по исследованию крови коз 1900 г. Еще больший интерес вызвали так называемые иммунные антитела которые образуются в сыворотке крови при попадании в нее эритроцитов других животных причем к тем антигенным факторам эритроцитов которых нет в собственных клетках. По этому признаку кровяные факторы распределяются по системам групп крови которые не изменяются в течение жизни т.
30976. Информационное обеспечение товароведения и экспертизы товаров 294.5 KB
  1 Понятие информации 4 1.2 Классификация видов и форм товарной информации 4 1.3 Требования предъявляемые к товарной информации 6 1.4 Классификация средств товарной информации 7 1.
30977. Копрологические синдромы патологических состоянии органов пищеварения 16.08 KB
  Недостаточность желчеотделения проявляется следующими признаками: цвет кала белый глинистый сероватобелый что особенно хорошо заметно у молодняка молочного возраста при этом реакция на билирубин и стеркобилин отрицательная или слабоположительная; в кале у телят молочников в большом количестве появляются жирные кислоты; мыла и нейтральный жир обнаруживаются в небольшом количестве; количество же аммиака увеличивается примерно в два раза при нормальном содержании органических кислот; консистенция кала чаще мазевидная его запах зловонный...
30978. Исследование мазков крови животных. Разные виды животных 108.45 KB
  Как читать мазок крови Методик много. Обычно зависит от профиля крови преобладание тех или иных видов крови лимфоцитов или нейтрофилов. Из четырёх полей в мазке крови выводим лейкограмму процентное соотношение клеток крови к белой крови при нейтрофильной крови.
30979. Исследование мочевыводящей системы 14.11 KB
  О болезни могут свидетельствовать изменение позы боли расстройства мочеиспускания отёчность симтомокомлекс изменение состава мочи. Расстройства мочеиспускания: Дизурия расстройство мочеиспускания; Поллакиурия частое выделение мочи в малых порциях; Олигакиурия ненормально редкое мочеиспускание; Странгурия болезненное мочеиспускание. Выделение мочи происходит с тенезмами мучительными болями. Энурез недержание мочи моча выделяется без изменения позы.
30980. Исследование нервной системы 700.87 KB
  Исследование поверхностных рефлексов кожи и слизистых. Глубоких рефлекс сухожилий мышц и надкостницы коленный и ахиллов рефлексы. Наибольшее значение ахиллов и коленный рефлекс на стоячем или лежачем животном. Коленный вызывают лёгким ударом ребром ладони или перкуссионным молоточком по прямым связкам если рефлекс вызван быстрое разгибание коленного сустава.
30981. Исследование однокамерного желудка. Исследование кишечника, печени моногастричных животных 14.06 KB
  Исследование кишечника печени моногастричных животных. Исследование желудка лошади. Очень эффективна гастроскопию ультразвуковое исследование голодная диета напоить обращаем на толщину стенок инородные тела новообразования. Исследование мочевыделительной системы.