
- •Разработка web – приложений на php
- •1. Цель работы 8
- •1. Цель работы 12
- •1. Цель работы 18
- •1. Цель работы 26
- •Введение
- •Переменные
- •Константы
- •Использование операций: вычисление итога по форме
- •Закрытие файла.
- •Закрытие файла.
- •Открытие файла
- •Запись в файл
- •Форматы файлов
- •Закрытие файла
- •Считывание из файла
- •Другие полезные файловые функции
- •Численно индексированные массивы
- •Ассоциативные массивы
- •Многомерные массивы
- •Сортировка массивов
- •Сортировка в обратном порядке
- •Сортировка многомерных массивов
- •Изменение порядка следования элементов в массивах
- •Загрузка массивов из файлов
- •Форматирование строк
- •Форматирование строк для представления
- •Объединение и разделение строк с помощью строковых функций
- •Сравнение строк
- •Сопоставление и замена подстрок с помощью строковых функций
- •Поиск строк в строках
- •Определение позиции подстроки
- •Замена подстрок
- •Задание
- •Контрольные вопросы
Использование операций: вычисление итога по форме
Вычислим итоговую сумму и налог для формы заказа. Для этого в нижнюю часть сценария добавим следующий код.
$totalqty = 0;
$totalamount = 0.00;
define("TYREPRICE", 100);
define("OILPRICE", 10);
define("SPARKPRICE", 4);
$totalqty = $tyreqty + $oilqty + $sparkqty;
$totalamount = $tyreqty * TYREPRICE
+ $oilqty * OILPRICE
+ $sparkqty * SPARKPRICE;
$totalamount = number_format($totalamount, 2);
echo "<br>\n";
echo "Items ordered: ".$totalqty."<br>\n";
echo "Subtotal: $".$totalamount."<br>\n";
$taxrate = 0.10; // местный налог с продаж составляет 10%
$totalamount = $totalamount * (1 + $taxrate);
$totalamount = number_format($totalamount, 2);
echo "Total including tax: $".$totalamount."<br>\n";
Операция конкатенации строк задействована для форматирования вывода в окне браузера. При помощи функции number_format() выполняется форматирование итоговых сумм в виде строк с двумя десятичными знаками.
Задание
Используя рассмотренный пример, разработайте собственную интерактивную форму.
Контрольные вопросы
Как осуществляется доступ к переменным формы?
Какие существуют области действия переменных?
Каким образом осуществляется объявление переменных, констант?
Лабораторная работа №2
Управляющие структуры
Цель работы
Цель работы - научиться использовать языковые структуры, позволяющие управлять потоком выполнения сценариев.
Управляющие структуры
Принятие решений с помощью условных операторов
Для обеспечения своевременной реакции на вводимую пользователем информацию, код должен быть в состоянии принимать решения. Конструкции, которые указывают программе о необходимости принятия решений, называются условными операторами.
Операторы if
Для использования оператора if, ему необходимо передать условие. Условие должно заключаться в круглые скобки. Например, если была случайно нажата кнопка Submit. Вместо сообщения “Order processed” (заказ обработан), на странице можно отобразить более полезное сообщение.
if($toltalqty ==0)
echo “Вы ничего не заказали на предыдущей странице<br>”;
Часто внутри оператора if требуется выполнить более одного оператора. Последовательность этих операторов можно сгруппировать в блок.
if($toltalqty ==0)
{
echo “<font color=red>”;
echo “Вы ничего не заказали на предыдущей странице <br>”;
echo “</font>”;
}
Оператор else
Оператор else позволяет определить альтернативное действие, которое должно выполняться, если значением условия в операторе if окажется false. В рассматриваемом примере необходимо предупреждать клиентов, когда они ничего не заказывают. С другой стороны, если они делают заказ, вместо предупреждения требуется вывести список заказанного.
if($toltalqty ==0)
{
echo “Вы ничего не заказали на предыдущей странице<br>”;
}
else
{
echo $tireqty.” tires<br>;
echo $oilqty.” bottles of oil<br>;
echo $sparkqty.” spark plugs<br>”;
}
Оператор elseif
Для многих принимаемых решений может существовать более двух возможностей. Последовательность множества вариантов действий создается с использованием оператора elseif. Например, пусть покупателям покрышек предоставляется скидка в зависимости от количества приобретаемого товара.
if( $tyreqty < 10 )
$discount = 0;
elseif( $tyreqty >= 10 && $tyreqty <= 49 )
$discount = 5;
elseif( $tyreqty >= 50 && $tyreqty <= 99 )
$discount = 10;
elseif( $tyreqty > 100 )
$discount = 15;
Оператор switch
В данном операторе условие может принимать любое количество значений до тех пор, пока оно имеет простой тип (integer, string, double). Для обработки каждого из значений, на которые требуется реагировать, необходимо записать оператор case, а также можно определить случай для обработки по умолчанию любых значений. Пример. добавим в форму следующий HTML – код:
<tr>
<td>How did you find Bob's</td>
<td><select name="find">
<option value = "a">I'm a regular customer
<option value = "b">TV advertising
<option value = "c">Phone directory
<option value = "d">Word of mouth
</select>
</td>
</tr>
Приведенный HTML – код добавил новую переменную формы, значением которой будет “a”, ”b”, ”c” или “d”. Эту новую переменную можно обработать с помощью последовательности операторов if и elseif или switch.
switch($find)
{
case "a" :
echo "<P>Regular customer.";
break;
case "b" :
echo "<P>Customer referred by TV advert.";
break;
case "c" :
echo "<P>Customer referred by phone directory.";
break;
case "c" :
echo "<P>Customer referred by word of mouth.";
break;
default :
echo "<P>We do not know how this customer found us.";
break;
}
Циклы
Существует таблица, отображающая стоимость доставки, которая будет добавляться к стоимости заказа клиента. Стоимость доставки зависит от расстояния и может быть вычислена с помощью простых форм. HTML - код данной таблицы выглядит следующим образом.
<html>
<body>
<table border = 0 cellpadding = 3>
<tr>
<td bgcolor = "#CCCCCC" align = center>Distance</td>
<td bgcolor = "#CCCCCC" align = center>Cost</td>
</tr>
<tr>
<td align = right>50</td>
<td align = right>5</td>
</tr>
<tr>
<td align = right>100</td>
<td align = right>10</td>
</tr>
<tr>
<td align = right>150</td>
<td align = right>15</td>
</tr>
<tr>
<td align = right>200</td>
<td align = right>20</td>
</tr>
<tr>
<td align = right>250</td>
<td align = right>25</td>
</tr>
</table>
</body>
</html>
Для того чтобы ускорить процесс создания таблицы можно использовать операторы цикла, которые указывают PHP о необходимости многократного выполнения оператора или блоков операторов.
Цикл while
Данный цикл выполняет блок операторов до тех пор, пока условие принимает значение true. Основная структура цикла имеет вид:
while( условие ) выражение;
В следующем примере данный цикл используется для генерации таблицы стоимости доставки.
<?
$distance = 50;
while ($distance <= 250 )
{
echo "<tr>\n <td align = right>$distance</td>\n";
echo " <td align = right>". $distance / 10 ."</td>\n</tr>\n";
$distance += 50;
}
?>
Цикл for
Структура цикла for имеет вид:
for( выражение1; условие; выражение2) выражение3;
выражение1 выполняется один раз в начале цикла. Обычно в нем устанавливается начальное значение счетчика.
выражение условие повторяется перед каждой итерацией.
выражение2 выполняется в конце каждой итерации. Обычно в нем изменяется значение счетчика.
выражение3 выполняется один раз для каждой итерации. Обычно это выражение представляет собой блок кода и содержит собственное тело цикла.
Пример цикла while перепишем с помощью цикла for:
<?
for($distance = 50; $distance <= 250 $distance = +50;)
{
echo "<tr>\n <td align = right>$distance</td>\n";
echo " <td align = right>". $distance / 10 ."</td>\n</tr>\n";
$distance += 50;
}
?>
Цикл do..while
Данный цикл имеет вид:
do
выражение;
while( условие);
Задание
Используя управляющие структуры, добавьте в форму информацию, по которой код будет принимать решение.
Контрольные вопросы
Какие виды условных операторов вы знаете?
С помощью, каких операторов осуществляется повторение действий?
Лабораторная работа №3
Хранение и получение данных
Цель работы
Цель работы - научиться сохранять данные из формы в файл и загружать их из файла.
Сохранение данных с целью дальнейшего использования
Рассмотрим способы хранения информации с целью дальнейшего ее использования. Для нашего примера потребуется записывать формы заказов клиентов на устройство хранения так, чтобы затем их можно было окончательно заполнить.
Существует два основных способа хранения данных: в двумерных файлах и в базах данных. Под двумерным (flat) файлом будем понимать простой текстовый файл.
Добавим в форму поле address, в которое будем заносить адрес доставки клиента. В результате мы располагаем переменной $address. Каждый из поступающих заказов будет записываться в один и тот же файл. Затем создается Web – интерфейс, чтобы можно было просматривать полученные заказы.
Запись данных в файл осуществляется в три шага.