ОСНОВЫ СОЗДАНИЯ ИНФОРМАЦИОННЫХ РЕСУРСОВ НА ЯЗЫКЕ РНР
МЕТОДИЧЕСКИЕ УКАЗАНИЯ
к лабораторным работам по курсу «Мировые информационные ресурсы»
Уфа 2006
Составитель: Е.И. Филосова
ББК
УДК 519.682
Методические указания к лабораторным работам по курсу «Мировые информационные ресурсы» для студентов специальности 080801 «ПРИКЛАДНАЯ ИНФОРМАТИКА (В ЭКОНОМИКЕ)» / Уфимский государственный авиационный технический университет; Составитель Е.И. Филосова, Уфа, 2006 - 24с.
В методических указаниях представлены лабораторные работы по изучению раздела «Основы создания информационных ресурсов на языке РНР» курса «Мировые информационные ресурсы». Представлены примеры, контрольные вопросы и задания для самостоятельной работы. Методические указания могут быть так же использованы в курсовом и дипломном проектировании.
Ил. 0, табл. 7, Библиогр.: 7 назв.
Рецензенты: доц.
доц.
© Уфимский государственный авиационный технический университет, 2006
|
|
Содержание
Цель работы.. 4
1 Общие положения. 4
1.1 Основы синтаксиса. 4
1.2 Переменные. Константы.. 4
1.3 Операторы.. 5
1.4 Типы данных. 6
1.4.1 Тип array (массив) 6
1.5 Условные операторы.. 8
1.5.1 Оператор if 8
1.5.2 Оператор switch. 9
1.6 Циклы.. 9
1.6.1 Цикл с предусловием while. 9
1.6.2 Цикл с постусловием do... while. 10
1.6.3 Цикл со счетчиком for 10
1.6.4 Цикл перебора массива foreach. 10
1.7 Операторы передачи управления. 11
1.8 Операторы включения. 11
1.9 Формы в HTML-документах. 11
1.10 Тег FORM – контейнер форм. 12
1.11 Тег INPUT и способы его использования. 12
1.11.1 Однострочные поля ввода. 12
1.11.2 Поле ввода пароля. 12
1.11.3 Скрытое текстовое поле. 13
1.11.4 Независимые переключатели. 13
1.11.5 Зависимые переключатели. 13
1.11.6 Кнопка отправки формы.. 13
1.11.7 Кнопка сброса. 14
1.11.8 Кнопка отправки с индивидуальным рисунком. 14
1.11.9 Загрузка файлов. 14
1.12 Ввод многострочного текста. Тег TEXTAREA.. 14
1.13 Списки выбора. Тег SELECT. 15
1.13.1 Списки с единственным выбором. 15
1.13.2 Списки множественного выбора. 15
1.14 Обработка запросов с помощью РНР. 15
2 Задание. 16
2.1 Вывод на экран и переменные в РНР. 16
2.2 Работа с условными операторами и операторами цикла в РНР. 17
2.3 Передача параметров по ссылке, передача параметров из формы. 18
2.4 Создание формы для обработки заказов электронного магазина. 18
3 Требования к отчету. 22
4 Контрольные вопросы.. 23
Цель работы
Овладеть основными приемами создания и обработки web-документов с помощью языка серверного скриптования PHP.
Общие положения
РНР (официальное название "PHP: Hypertext Preprocessor") лучше всего охарактеризовать как работающий на стороне сервера встроенный язык Web-сценариев, позволяющий разработчикам быстро и эффективно строить динамические web-приложения.
|
|
Основы синтаксиса
РНР может встраивается в HTML-код следующим способом: первый вариант <?php?>, сокращенный вариант <??>.
Программа на РНР — это набор команд (инструкций). В РНР инструкции разделяются точкой с запятой.
<html> <head> <title>Пример</title> </head> <body> <?php echo "Привет, это PHP-скрипт!"; ?> </body></html>Часто при написании программ возникает необходимость делать какие-либо комментарии к коду, которые никак не влияют на сам код, а только поясняют его. РНР поддерживает несколько видов комментариев: в стиле Си, C++ и оболочки Unix. Символы // и # обозначают начало однострочных комментариев, /* и */ - соответственно начало и конец многострочных комментариев.
Важным элементом каждого языка являются переменные, константы и операторы, применяемые к этим переменным и константам.
Переменные. Константы
Переменная в РНР обозначается знаком доллара, за которым следует ее имя. Например: $my_var. Имя переменной чувствительно к регистру, т.е. переменные $my_var и $My_var различны.
Имена переменных соответствуют тем же правилам, что и остальные наименования в РНР: правильное имя переменной должно начинаться с буквы или символа подчеркивания с последующими в любом количестве буквами, цифрами или символами подчеркивания.
Для хранения постоянных величин, т.е. таких величин, значение которых не меняется в ходе выполнения скрипта, используются константы. Для определения константы существует специальная функция define(). Ее синтаксис таков:
define("Имя_константы", "Значение_константы", [Нечувствительность_к_регистру])
По умолчанию имена констант чувствительны к регистру. Для каждой константы это можно изменить, указав в качестве значения аргумента Нечувствительность_к_регистру значение True. Существует соглашение, по которому имена констант всегда пишутся в верхнем регистре. Получить значение константы можно, указав ее имя. В отличие от переменных, не нужно предварять имя константы символом $. Кроме того, для получения значения константы можно использовать функцию constant () с именем константы в качестве параметра.
Операторы
Операторы позволяют выполнять различные действия с переменными, константами и выражениями.
Таблица 1
Арифметические операторы
Обозначение | Название | Пример |
+ | Сложения | $а + $b |
- | Вычитание | $а - $b |
* | Умножение | $a*$b |
/ | Деление | $а / $b |
% | Остаток от деления | $а % $b |
• | Конкатенация (сложение строк) | $с = $а.$b |
Таблица 2
Операторы присваивания
Обозначение | Описание | Пример |
= | Переменной слева от оператора будет присвоено значение, полученное в результате выполнения каких-либо операций с правой стороны | $а =($b = 4) +5; ($а будет равна 9, $b четырем) |
+= | Прибавляет к переменной число и затем присваивает ей полученное значение | $а += 5; (то же, что и $а = $а + 5;) |
.= | Сокращенно обозначает комбинацию операций конкатенации и присваивания (сначала добавляется строка, потом полученная строка записывается в переменную) | $b = "Привет"; $b.= "всем"; В результате: $b="Привет всем" |
Таблица 3
Логические операторы
Обозначение | Название | Пример | Описание |
аnd && | И | $а and $b $а && $b | $а и $b истинны (True) |
оr || | Или | $а or $b $а || $b | Хотя бы одна из переменных $а или $b истинна (возможно, что и обе) |
хоr | Исключающее или | $а хоr $b | Только одна из переменных истинна. |
! | Инверсия (NOT) | !$а | Если $а=Тruе, то!$a=False и наоборот |
Таблица 4
Операторы сравнения
Обозначение | Название | Пример | Описание |
== | Равенство | $а == $b | Значения переменных равны |
=== | Эквивалентность | $а === $b | Равны значения и типы переменных |
!=, <> | Неравенство | $а!= $b, $а <>$b | Значения переменных не равны |
!== | Неэквивалентность | $а!= = $b | Переменные не эквивалентны |
< | Меньше | $а<$b | |
> | Больше | $а>$b | |
<= | Меньше или равно | $а <= $b | |
>= | Больше или равно | $а >= $b |
Таблица 6
|
|
Операторы инкремента и декремента
Обозначение | Название | Описание | Пример |
++$а | Пре-инкремент | Увеличивает $а на единицу и возвращает $а | <? $а=4; echo "Должно быть 5:".++$а; echo "Должно быть 5:".$а++; echo "Должно быть 6:".$а; echo "Должно быть 5:".--$а; echo "Должно быть 5:".$а--; echo "Должно быть 4:".$а; ?> |
$а++ | Пост-инкремент | Возвращает $а, затем увеличивает $а на единицу | |
--$а | Пре-декремент | Уменьшает $а на единицу и возвращает $а | |
$а-- | Пост-декремент | Возвращает $а, затем уменьшает $а на единицу |
Типы данных
РНР поддерживает восемь простых типов данных. Четыре скалярных типа:
· boolean (логический). Этот простейший тип выражает истинность значения, т.е. переменная этого типа может иметь только два значения - истина TRUE или ложь FALSE;
· integer (целый). Этот тип задает число из множества целых чисел. Целые могут быть указаны в десятичной, шестнадцатеричной или восьмеричной системе счисления, по желанию с предшествующим знаком «-» или «+». Если используется восьмеричная система счисления, нужно предварить число 0 (нулем), для использования шестнадцатеричной системы нужно поставить перед числом 0х;
• float (с плавающей точкой);
• string (строковый). Строка - это набор символов. В РНР символ - это то же самое, что байт, это значит, что существует ровно 256 различных символов. Строка в РНР может быть определена с помощью одинарных или двойных кавычек. Самым важным свойством строк в двойных кавычках является обработка переменных.
Два смешанных типа:
• array (массив);
• object (объект).
И два специальных типа:
• resource (ресурс);
• NULL.
В РНР не принято явное объявление типов переменных.
1.4.1 Тип array (массив)
Массив в РНР представляет собой упорядоченную карту - тип, который преобразует значения в ключи. Определить массив можно с помощью конструкции array() или непосредственно задавая значения его элементам.
|
|
Определение при помощи array()
array ([key] => value, [keyl] => valuel,...)
Языковая конструкция array () принимает в качестве параметров пары ключ => значение, разделенные запятыми. Символ => устанавливает соответствие между значением и его ключом. Ключ может быть как целым числом, так и строкой, а значение может быть любого имеющегося в РНР типа. Числовой ключ массива часто называют индексом. Индексирование массива в РНР начинается с нуля. Значение элемента массива можно получить, указав после имени массива в квадратных скобках ключ
Если для элемента ключ не задан, то в качестве ключа берется максимальный числовой ключ, увеличенный на единицу. Если указать ключ, которому уже было присвоено какое-то значение, то оно будет перезаписано. Если максимальный ключ — отрицательное число, то следующим ключом массива будет ноль (0).
<?php // массивы $аrr и $arr1 эквиваленты
$аrr = аrrау(5 => 43, 32, 56, "b" => 12);
$arr1 = array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?>
Для работы с массивами можно применять следующие функции:
Таблица 7
Функции работы с массивами
Название | Обозначение | Пример |
range | Заполняет список целыми числами | $arr=range(4,9); // теперь $arr = array(4, 5, 6, 7, 8, 9); |
array_reverse | Расстановка элементов массива в обратном порядке | $arr = array_reverse($arr); // теперь $arr = array(9, 8, 7, 6, 5, 4); |
shuffle | Перемешивание элементов массива | shuffle($A); /* теперь в массиве arr числа 4,5,6,7,8,9 в случайном порядке*/ |
sort | Сортировка массива по возрастанию | $A = array("One", "Two", "Tree", "Four"); sort($A); // выводит "0:Four 1:One 2: Tree 3: Two " |
rsort | Сортировка массива по убыванию | asort($A); // выводит " 0:Two 1:Tree 2:One 3:Four " |
asort | Сортировка ассоциативного массива по возрастанию | $A=array("a"=>"Zero","b"=>"Weapon","c"=>"Alpha","d"=>"Processor"); asort($A); //c=>Alpha d=>Processor b=>Weapon a=>Zero |
arsort | Сортировка ассоциативного массива по убыванию | arsort($А); // a=>Zero b=>Weapon d=>Processor c=>Alpha |
ksort | Сортировка массива по возрастанию ключей | ksort($A); // a=>Processor b=>Alpha c=>Weapon d=>Zero |
krsort | Сортировка массива по убыванию индексов | krsort($A); // d=>Zero c=>Weapon b=>Alpha a=>Processor |
unset | удаляет элемент массива | unset($arr[l]); //теперь $arr = array(5, 6, 7, 8, 9); |
reset | Производит сброс курсора массива | Устанавливает внутренний курсор массива на его начало и возвращает значение начального элемента |
end | Производит перенос курсора в конец массива | Устанавливает внутренний курсор массива на последний элемент и возвращает значение начального элемента |
next | Производит перенос курсора вперед | Возвращает значение элемента, на котором в данный момент находится курсор, и перемещает курсор массива на следующий элемент |
Название | Обозначение | Пример |
prev | Производит перенос курсора назад | Возвращает значение элемента, на котором в данный момент находится курсор, и перемещает курсор массива на предыдущий элемент |
current | Определение текущего элемента массива | Возвращает значение элемента, на котором в данный момент находится курсор массива, при этом не сдвигая курсор |
key | Возвращает индекс текущего элемента массива | |
array_keys | Возвращает список из ключей массива | $arr = array(0 => 100, "color" => "red", 15); array_keys($arr); //возвратит array(0, "color", 1) |
array_values() | Переиндексирует массив | |
sizeof count | Возвращает число элементов массива | |
array_sum | Возвращает сумму всех элементов массива | $arr = array(2,4,6,7); echo "Сумма: ".array_sum($arr); // Сумма: 19 |
array_slice | Получение части массива | $input = array("a", "b", "c", "d", "e"); $output = array_slice($input, 2); // "c", "d", "e" $output = array_slice($input, 2, -1); // "c", "d" $output = array_slice($input, 0, 3);// "a", "b", "c" |
array_search in_array | Поиск значения в массиве | If (in_array(“b”,$input)) echo “Да”; $k= array_search(“b”,$input); // выведет 1 |
array_splice | Удаляет часть массива |
Условные операторы
1.5.1 Оператор if
Этот оператор позволяет выполнять фрагменты кода в зависимости от условия. Структуру оператора if можно представить следующим образом: