Практическое занятие № 21
Создание сценариев средствами языка PHP
Цель занятия
Получить практические навыки создания программного кода средствами языка программирования PHP.
Оборудование и программное обеспечение
2.1 Персональный компьютер
2.2 MicrosoftWindows XP
2.3 Denwer
2.4 Браузер
Теоретические сведения
Синтаксис PHP во многом заимствован из таких языков как C, Java и Perl. Файл, обрабатываемый сервером как правило имеет расширение php.
Поэтому, если вы знакомы хотя бы с одним из них - вам не составит особого труда просто сесть и начать писать программы на PHP.
PHP-код включаются в html-код в следующем виде:
<?PHP текст_кода?>
или
<?
текст_кода;
?>
Коментарии
PHP поддерживает комментарии 'C', 'C++' и оболочки Unix. Например:
<?phpecho "Thisis a test"; // Это однострочный комментарий в стиле c++
/* Это многострочный комментарий,
это ещё одна его строка */
echo "This is yet another test"; echo "One Final Test";
# Это комментарий в shell-стиле?>
Echo
<?phpecho "Эта информация будет выведена в HTML";?>
Присвоение значений переменным
Переменные в программах на PHP, отделяются символами $.
$city = "Tula";
city - переменная
Tula - значение
Некоторые операции
инкремента/декремента;
++$a Pre-increment Увеличивает $a на 1,затем возвращает $a.
$a++ Post-increment Возвращает $a, затем увеличивает $a на 1.
--$a Pre-decrement Уменьшает $a на 1, затем возвращает $a.
$a-- Post-decrement Возвращает $a, затем уменьшает $a на 1.
арифметические:
$a + $b Сложение Сумма $a и $b.
$a - $b Вычитание Разность $a и $b.
$a * $b Умножение Произведение $a и $b.
$a / $b Деление Частное от деления $a на $b.
$a % $b Modulus Целочисленный остаток от деления $a на $b.
строковые:
Имеются две строковые операции. Первая - операция ('.'), которая
|
возвращает объединение из правого и левого аргументов. Вторая -
операция присвоения ('.='), которая присоединяет правый аргумент в
левомуаргументу.
$a = "Hello "; $b = $a. "World!"; // теперь $b содержит "Hello World!"
$a = "Hello "; $a.= "World!"; // теперь $a содержит "Hello World!"
Выражения сравнения
Выражения сравнения вычисляются в 0 или 1, означая FALSE или TRUE (соответственно).
PHP поддерживает
> (больше),
>= (больше или равно),
== (равно),
!= (не равно),
< (меньше) и <= (меньше или равно).
Эти выражения чаще всего используются внутри условных операторов, таких как if.
сравнения:
$a == $b равно TRUE, если $a равно $b.
$a!= $b не равно TRUE, если $a не равно $b.
$a <> $b не равно TRUE, если $a не равно $b.
$a < $b меньше TRUE, если $a строго меньше $b.
$a > $b больше TRUE, если $a строго больше $b.
$a <= $b меньше или равно TRUE, если $a меньше или равно $b.
$a >= $b больше или равно TRUE, если $a больше или равно $b.
Некоторые операторы
include "имя файла"
- команда для включения содержимого одного файла в другой. Содержимое файла, имя которого указывается в команде, целиком и полностью вставляется на то место, где располагается эта команда, при этом все коды РНР, содержащиеся во вставляемом файле, исполняются так же, как если бы они были на месте этой команды. (Помните, что файл именно вставляется - т. е., например, пути к картинкам, которые должны присутствовать во вставляемом файле, следует указывать от местонахождения того файла, в котором находилась команда include.) Если файл, включаемый в страницу при помощи команды include, отсутствует, то вместо него размещается уведомление об этом, а программа на РНР выполняется дальше. (При необходимости завершения обработки и выдачи web-страницы в случае отсутствия включаемого файла, вместо команды include следует использовать команду require.)
|
mail ("Кому", "Тема", "Текст сообщения", "Дополнительные заголовки")
- отправка почтового сообщения. При выполнении данной команды на сервере в соответствии с указанными параметрами формируется электронное письмо и отправляется с помощью установленной на сервере почтовой программы. В качестве параметра "Кому" может выступать набор адресов, разделенных запятыми. "Дополнительные заголовки" могут быть любые (естественно, допустимые почтовыми протоколами!), разделяться они должны должны комбинацией символов /n, которая в РНР означает перевод строки. (Если среди "Дополнительных заголовков" не указано поле From, то оно заполняется по умолчанию почтовой программой web-сервера, например, именем "UnprivilegedUser".)
echo ("текст")
- вывод на web-страницу какого-либо текста. Чтобы вывести на web-страницу значение какой-либо переменной, достаточно просто написать ее имя внутри выводимой строки: команда echo "это цифра $а" выведет в web-страницу текст "это цифра 1", если ранее переменной $а было присвоено значение, равное единице. В случае необходимости использовать в выводимой строке кавычки или иные специальные символы перед этими символами следует ставить символ ".
if (условие) {...команды, которые должны выполняться, если условие верно...;} else {...команды, которые должны выполняться, если условие неверно...}
|
-команда, позволяющая выполнить то или иное действие в зависимости от истинности верности или ложности того или иного условия. В фигурных скобках может располагаться несколько команд, разделенных точкой с запятой.
for (начальное значение счетчика, условие продолжения цикла, изменение счетчика на каждом цикле) {...команды...;}
- цикл, т. е. повторение указанных в нем команд столько раз, сколько позволит условие изменения счетчика цикла (т. с. переменной, специально выделенной для подсчета числа выполнений команд цикла).
while (условие) { ...команды... }
- цикл с условием. Команды в фигурных скобках выполняются до тех пор, пока выполняется условие в заголовке цикла. Для того чтобы цикл прервался, нужно, чтобы условие выполняться перестало - поэтому внутри цикла необходимо предусмотреть возможность влиять на это условие.
Цикл do {...команды... }while (условие)
работает так же, однако команды, указанные в фигурных скобках, будут выполнены по меньшей мере один раз - даже если условие выполняться не будет. Прервать выполнение любого цикла можно оператором break -дальнейшее выполнение программы пойдет с команды, следующей после закрывающей фигурной скобки. Оператор же continue прерывает текущую стадию выполнения цикла, т. е. после этого оператора дальнейшее выполнение программы начнется с очередной проверки условия заголовка цикла.
switch (выражение) { case значение:... команды...; break; case другое значение:... команды...; break ;}
- оператор выбора. При его работе содержимое, заключённое в фигурные скобки, просматривается сверху вниз. Как только будет найден оператор case со значением, совпадающим со значением выражения, РНР начнёт выполнять весь код, следующий за этим оператором case до последней фигурной скобки оператора switch или до первого оператора break, в зависимости от того, что появится раньше. (Обратите внимание, что если команду break не указать в конце кода, относящегося к одному варианту значения выражения в заголовке оператора switch, PHP будет выполнять код дальше - т. е. тот, который принадлежит уже следующему оператору case!Это - одно из отличий данного оператора от аналогичных в других языках программирования.) В конце оператора switch можно указать оператор default. Код, стоящий после него, выполнится в том случае, если значение выражения в заголовке оператора не совпадет ни с одним из значений после операторов case.
foreach (переменная as массив) {...команды.. .;}
- поочередное считывание всех элементов массива. Foreach считывает в указанную в его параметрах переменную поочередно все элементы указанного в них же массива, выполняя каждый раз указанный в фигурных скобках код, в котором может использоваться указанная переменная. (Значения элементов массива этим оператором только считываются, их модификация при помощи команды foreach невозможна.)
Порядок выполнения работы
4.1Выполнить задания 1 – 25
4.2 Ответить на контрольные вопросы
Содержание отчета
1. Название работы
2. Цель работы
3. Порядок выполнения работы
4. Работающая страница с комментариями
5. Ответы на контрольные вопросы
6 Контрольные вопросы
6.1 Что такое PHP?
6.2 Каким образом вставить конструкции PHP в HTML-документ?
6.3 Можно ли смешивать в одном файле html-код с кодом на языке PHP?
6.4 Как составить условие на PHP?
6.5 Какие типы циклов описаны в стандарте языка PHP?
Перечень литературы
7.1 Прохоренок Н. А. HTML, javascript, PHP и MySQL. Джентльменский набор Web-мастера - БХВ-Петербург,2011г.
7.2 Билл Скотт, Тереза Нейл Проектирование веб-интерфейсов - Символ-Плюс, 2010
Задача №1
Создать HTML-документ, который будет содержать в себе базовую структуру, doctype, head, html, body
Задача №2
Вывести в созданном документе заглавия - h1, h2, h3
Задача №3
Вывести жирный, курсив и подчеркнутый текст
Задача №4
Вывести текст в абзаце
Задача №5
Вывести ссылки на внешний ресурс. Первая ссылка должна открываться в текущей вкладке браузера, а вторая ссылка, должна открывать внешний ресурс в новой вкладке.
Задача №6
Создать блочный и строчный тег (div, span)
Задача №7
Вывести таблицу, где в ней будет 5 столбцов: ID, имя, фамилия, отчество, дата рождения. Таблицу заполнить 2 записями
Задача №8
Создайте переменную name и присвойте ей значение, содержащее ваше имя, например "Иннокентий"
Задача №9
Создайте переменную age и присвойте ей значение, содержащее ваш возраст, например 20.
Задача №10
Выведите с помощью echo фразу "Меня зовут: %ваше_имя%", например: "Меня зовут: Иннокентий".
Задача №11
Выведите фразу "Мне %ваш_возраст% лет", например: "Мне 20 лет"
Задача №12
Напишите конструкцию if, которая выводит фразу: "Вам еще работать и работать" при условии, что значение переменной age попадает в диапазон чисел от 18 до 59 (включительно).
Задача №13
Расширьте конструкцию if из задачи 22, выводя фразу: "Вам пора на пенсию" при условии, что значение переменной age больше 59
Задача №14
Расширьте конструкцию if из задач 22, 23, выводя фразу: "Вам еще рано работать" при условии, что значение переменной age попадает в диапазон чисел от 0 до 17 (включительно)
Задача №15
Расширьте конструкцию if из задач 22, 23, 24, выводя фразу: "Неизвестный возраст" при условии, что значение переменной age является отрицательным числом, или вовсе числом не является
Задача №16
Создайте переменную day и присвойте ей произвольное числовое значение
Задача №17
С помощью конструкции switch выведите фразу: "Это рабочий день", если значение переменной day из задачи 26 попадает в диапазон чисел от 1 до 5 (включительно)
Задача №18
С помощью конструкции switch выведите фразу: "Это выходной день", если значение переменной day из задачи 26 попадает в диапазон чисел от 6 до 7 (включительно)
Задача №19
С помощью конструкции switch выведите фразу: "Неизвестный день", если значение переменной day из задачи 26 не попадает в диапазон чисел от 1 до 7 (включительно)
Адача №20
Написать калькулятор. Переменная $a = изменяемое число. Переменная $b = изменяемое число. Переменная $operator = ‘+’ или ‘-’ или ‘/’ или ‘*’ или '%' (остаток от деления). На экран выводить результат в зависимости от значений этих переменных. Не забудьте про деление на 0, если надо - выдавать ошибку что на 0 делить нельзя
Задача №21
Создайте две переменные $a и $b, значения которых будут числами. Выведите максимальное число из этих двух
Задача №22
Дан массив с элементами 1, 20, 15, 17, 24, 35. С помощью цикла foreach найдите сумму элементов этого массива. Запишите ее в переменную $result
Задача №23
Дан массив $arr. С помощью первого цикла foreach выведите на экран столбец ключей, с помощью второго — столбец элементов.
$arr = array('green'=>'зеленый', 'red'=>'красный','blue'=>'голубой');
Задача №24
Дан массив $arr с ключами 'Коля', 'Вася', 'Петя' с элементами '200', '300', '400'. С помощью цикла foreach выведите на экран столбец строк такого формата: 'Коля — зарплата 200 долларов.'
Задача №25
Дан массив с элементами 2, 5, 9, 15, 0, 4. С помощью цикла foreach и оператора if выведите на экран столбец тех элементов массива, которые больше 3х, но меньше 10