- •Міністерство освіти і науки україни
- •Програмування для internet Посібник до виконання лабораторних робіт
- •Документы html5
- •Структура тела документа
- •Макет страницы
- •Строение тела документа
- •Отображение документа в окне браузера
- •Стили css
- •Блочные элементы
- •Основы применения стилей
- •Стили и стуктура
- •Строчные стили
- •Встроенные стили
- •Внешние файлы
- •Ссылка по любому атрибуту
- •Определение ссылок по псевдоклассам
- •Новые селекторы
- •Контрольные вопросы и задания:
- •Лабораторная работа №3 Традиционная блочная модель
- •Задание: Применить к шаблону документа, созданного в лабораторной работе №1, традиционную блочную модель. Краткие теоретические сведения
- •Универсальный селектор *
- •Новая иерархия заголовков
- •Объявление новых элементов html5
- •Выравнивание тела документа по центру
- •Создание главного блока
- •Заголовок
- •Навигационная полоса
- •Раздел и боковая врезка
- •Нижний колонтитул
- •Принцип работы гибкой блочной модели
- •Свойство display
- •Свойство box-orient
- •Свойство box-direction
- •Свойство box-ordinal-group
- •Сойство box-pack
- •Свойство box-flex
- •Свойство box-align
- •Гибкая блочная модель
- •Свойства css3
- •Свойство border-radius
- •Свойство box-shadow
- •Свойство text-shadow
- •Свойство @font-face
- •Линейный градиент
- •Радиальный градиент
- •Свойство outline
- •Свойство border-image
- •Свойства transform и transition
- •Функция transform: rotate
- •Функция transform: skew
- •Функция transform: translate
- •Одновременное использование всех видов трансформации
- •Динамические трансформации
- •Переходы
- •Лабораторная работа №6
- •Внедрение JavaScript
- •Обработчики событий
- •Воспроизведение видеои аудио с помощью html5
- •Программирование видеопроигрывателя
- •Свойства
- •Выполнение кода
- •Воспроизведение аудио с помощью html5
- •Программирование видеопроигрывателя
- •Контрольные вопросы и задания:
- •Лабораторная работа №8 Новые элементы, типы ввода и атрибуты, расширяющие функциональность форм
- •Задание: использовать новые возможности для создания форм, появившиеся в спецификации html5 и добавить их в разрабатываемый веб-сайт. Краткие теоретические сведения:
- •Атрибут multiple
- •Атрибут autofocus
- •Атрибут pattern
- •Атрибут form
- •Новые элементы форм
- •Контрольные вопросы и задания:
- •Лабораторная работа №9 Установка Apache и php. Конфигурационные файлы
- •Краткие теоретические сведения:
- •Доступ к содержимому массива
- •Использование циклов для доступа к массиву
- •Массивы с различными индексами
- •Операции для работы с массивами
- •Загрузка массивов из файлов
- •Швець н.В. Програмування для internet Посібник до виконання лабораторних робіт
- •65039, Одеса, вул. Канатна, 112
Операции для работы с массивами
Существует набор специальных операций, применимых только в отношении массивов. Большинство из них имеет скалярные аналоги.
Операция |
Название |
Пример |
Результат |
+ |
объединение |
$a+$b |
Массив $b добавляется к массиву $a, при этом элементы с конфликтующими ключами не добавляются |
== |
равно |
$a == $b |
Возвращает true, если массивы содержат одинаковые элементы |
=== |
идентично |
$a===$b |
Возвращает true, если массивы содержат одинаковые элементы одинакового типа, расположенные в одинаковом порядке |
!= |
не равно |
$a != $b |
Возвращает true |
<> |
не равно |
$a<>$b |
То же, что и != |
!== |
не идентично |
$a!==$b |
Возвращает true, если массивы не содержат одинаковые элементы одинакового типа, расположенные в одинаковом порядке |
Операция объединения пытается добавить элементы массива $b в конец массива $a. Если ключи элементов в $b совпадают с ключами некоторых элементов в $a, такие элементы не добавляются. Таким образом, элементы массива $a не перезаписываются.
Загрузка массивов из файлов
Вернемся к программе из предыдущей лабораторной работы. Для обработки или выполнения заказа его можно загрузить из файла в массив.
<html>
<head>
<title>Автозапчасти— Результаты заказа</title>
</head>
<body>
<h1>Автозапчасти </h1>
<h2>Список заказов</h2>
<?php
// создание короткого имени переменной
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
$orders = file("$DOCUMENT_ROOT/../orders/orders.txt");
$number_of_orders = count($orders);
if ($number_of_orders == 0) {
echo "<p><strong>Нет необработанных заказов.
Загляните позже.</strong></p>";
}
for ($i=0; $i<$number_of_orders; $i++) {
echo $orders[$i]."<br />";
}
?>
</body>
</html>
Здесь используется функция file(), которая загружает содержимое файла в массив $orders. Каждая строка файла становится отдельным элементом массива. Функция count() подсчитывает количество элементов в массиве.
Кроме того, каждый раздел строк заказа можно также загрузитьв отдельный элемент массива, чтобы разделы можно было обрабатывать по отдельности или посредством выбора соответствующего формата придать им более наглядный вид. Именно эту задачу решает следующий сценарий.
<?php
// создание короткого имени переменной
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
?>
<html>
<head>
<title>Автозапчасти— Заказы клиентов</title>
</head>
<body>
<h1>Автозапчасти </h1>
<h2>Заказы клиентов</h2>
<?php
// Считывание всего файла.
// Каждый заказ становится элементом массива
$orders= file ("$DOCUMENT_ROOT/../orders/orders.txt");
// Подсчет количества заказов, хранящихся в массиве
$number_of_orders = count($orders);
if ($number_of_orders == 0) {
echo "<p><strong>Нет необработанных заказов.
Загляните позже.</strong></p>";
}
echo "<table border=\"1\">\n";
echo "<tr>" .
"<th bgcolor = \"#CCCCFF\">Дата заказа</th>" .
"<th bgcolor = \"#CCCCFF\">Покрышки</th>" .
"<th bgcolor = \"#CCCCFF\">Масло</th>" .
"<th bgcolor = \"#CCCCFF\">Свечи</th>" .
"<th bgcolor = \"#CCCCFF\">Всего</th>" .
"<th bgcolor = \"#CCCCFF\">Адрес</th>" .
"<tr>";
for ($i=0; $i<$number_of_orders; $i++) {
// Разбиение строк
$line = explode("\t", $orders[$i]);
// Сохранение только количества заказанных товаров
$line[1] = intval($line[1]);
$line[2] = intval($line[2]);
$line[3] = intval($line[3]);
// Вывод заказов
echo "<tr>" .
"<td>".$line[0]."</td>" .
"<td align = \"right\">".$line[1]."</td>" .
"<td align = \"right\">".$line[2]."</td>" .
"<td align = \"right\">".$line[3]."</td>" .
"<td align = \"right\">".$line[4]."</td>" .
"<td>".$line[5]."</td>" .
"</tr>";
}
echo "</table>";
?>
</body>
</html>
Здесь функция explode() используется для разбиения считанной строки, чтобы перед выводом ее можно было предварительно обработать или отформатировать.
Прототип функции:
array explode(string separator, string string[, int limit)
В качестве разделителя мы использовали символ табуляции.
Необязательный параметр limit используется для того, чтобы ограничить максимальное количество частей, на которые разбивается строка.
В нашем примере вместо того чтобы в каждой строкк выводить название товара (покрышки, бутылки масла и свечи зажигания), в ней отображается только заказанное количество, а таблица снабжается строкой заголовка.
Существует ряд способов извлечения чисел из строк.Функция intval() преобразует тип string в тип integer. Преобразование выполняется достаточно рационально – оно игнорирует такие фрагменты строки как метка, которые не могут быть преобразованы в integer.
