PHP. Лабораторные работы
Установка PHP
Для выполнения PHP и отладки PHP-программ необходим набор программных средств состящих из: Apach, PHP, MySql, эмулятор почтового сервера. Наиболее простое решение это пакет Denwer для Windows. Для написания и редакторования PHP-программ идеальным решением является PhpStorm. И если Denwer является совершенно бесплатным програмным продуктом, то PhpShtorm – это Trial-версия на 30 дней, после которых нужно или купить лицензию или погуглить, как продлить ещё на 30 дней.
Вам необходимо скачать и установить Denwer и PhpStorm. Создать новый проект с названием new.dev, создать файл index.php, добавить в него вывод на экран с помощью оператора echo текст "Это моя первая программа на PHP."
Элементы языка
- Написать программу, которая содержит не менее 5-и переменных. Присвоить им значения разных типов и с помощью функции gettype() вывести тип каждой переменной на экран браузера.
- Присвоить значения двум переменным. С помощью операторов сравнения проверить, удовлетворяет ли первая
переменная слудующим условиям:
- равна второй;
- меньше второй;
- меньше или равна второй;
- больше второй.
Управление потоком
- C помощью инструкции if вывести на экран строку "Для молодежи", если переменная $age находится в диапазоне от 18 до 30. Если значение переменной вне этого диапазона, то вывести строку "Для всех возрастов".
- Сделать то же самое, но если переменная $age находится в диапазоне от 1 до 17, то вывести строку "Для детей".
- Написать цикл while, который будет выводить на экран все нечетные числа от 0 до 50.
- Сделать то же самое с помощью цикла for.
Массивы
- Создать массив, содержащий названия фильмов, организованных по жанрам. пусть это будет ассоциированный массив, в котором имена полей будут жанрами ("мелодрама", "боевик", "детектив" и пр.), а элементами – названия фильмов.
- Просмотреть созданный массив в цикле, выводя название жанра и связанные с ним фильмы на экран.
Функции
- Создать функцию, которая выводит текст с разным размером шрифта. Функция имеет два аргумента: текстовая строка и размер шрифта.
- Создать функцию, которая принимает четыре текстовые строки, а выводит html-код таблицы, где каждая из исходных строк расположена в отдельной ячейке.
Строки
- Проверить, содержит ли адрес электронной почты символ @, и выведите предупреждающее сообщение, если такого символа нет.
- Создать массив, состоящий из целочисленных и вещественных значений. Считать этот массив в цикле, преобразовывая все элементы в вещественные значения с точностью в два знака после запятой. Вывести значения нового массива в столбец с выравниванием по правому краю.
Объектное программирование
- Переработать класс Table http://htmlweb.ru/php/php6.php пример 3 для вывода в формате таблицы с тегами table, th, tr, td
- Добавить закрытие тегов tr, th, td в примере 6 http://htmlweb.ru/php/php6.php
- Создать класс с именем baseClass, в свойствах которого сохраняются два числа. Написать к нему метод calculate(), который выводит эти числа на экран.
- Создать класс с именем addCalc, производный от класса baseClass. Переопределить его метод calculate() так, чтобы он выводил на экран сумму чисел.
- Создать класс с именем minusCalc, производный от класса baseClass. Переопределить его метод calculate() так, чтобы он выводил на экран разность первого и второго чисел.
- Создать класс содержащий static метод _GetVar(id, свойство), который создает объект класса и возвращает значение свойтва переданного во втором параметре. Это задание на понимание различий статических и динамических методов. При обращении к static методу нужно создать(new) новый экземпляр класса получить у него свойство, переданное в качестве параметра и вернуть его.
- Создать класс в котором будут производиться запись и чтение любых свойств этого класса. Использовать массив
со свойствами и методы-перехватчики __get, __set, __unset, __isset
Отдокументровать 3 свойства с помощью @property phpDoc - Определить волшебный метод Sum(a,b) - сумирования двух "волшебных" свойств переданных в параметре с помощью __call. Отдокументровать этот метод, определенный с помощью phpDoc
Формы
- Написать программу-калькулятор, которая позволит пользователю передать два числа и указать арифметическую операцию, выполняемую над ними.
- Внести изменение в программу из предыдущего упражнения: используя скрытые поля, выводить на экран число предыдущих обращений.
Файлы
- Написать программу, которая спрашивает у пользователя его имя и фамилию и сохраняет эти данные в файл dataFile.
- Написать программу, которая читает данные из файла dataFile и выводит на экран, разделив на пронумерованные строки.
- Необходимо реализовать блокировку на доступ к некоторым данным для двух параллельно запущенных процессов.
Если один из процессов поставил блокировку, второй процесс не имеет доступа к данным пока блокировка не
будет снята. Реализовать средствами работы с файлами PHP: test1.php и test2.php хотят:
- получить доступ к файлу test.txt (установить блокировку)
- прочитать содержимое (в каждой строчке записано число)
- просуммировать все числа
- записать сумму в конец файла
- снять блокировку
1 2 3
MySQL
- Создать БД с тремя полями:
- адрес электронной почты (50 символов),
- текст сообщения (250 символов),
- дата и время отправления.
- Написать программу, выводящую информацию из БД, созданной в предыдущем упражнении.
- Написать систему хранения книг в БД. Меня волнуют названия книг и авторы — больше ничего хранить не надо. Предложите структуру таблиц. Учтите, что книга может быть написана несколькими соавторами. Получите список книг, которые написаны 3-мя со-авторами. То есть получить отчет «книга — количество соавторов» и отфильтровать те, у которых со-авторов меньше 3х. Cделайте это одним SQL запросом.
- Есть база: фильмы и страны, у одного фильма может быть много стран производителей, надо построить базу. Нерадивый программист удалял фильмы, но не подчистил таблицу связи. Надо найти и удалить все мусорные записи которые остались в таблице связи.
Cookie
- Создать форму, с помощью которой пользователь может задать свой ник и выбрать цвет фона страниц сайта.
- Использовать cookie для того, чтобы приветствовать пользователя по имени на следующих страницах с заданным фоном.
Сессии
- Написать программу сохранения персональных настроек пользователя (ник и фон страниц) c использованием функций управления сессией.
- Написать программу, которая применяет функции управления сессией для запоминания того, какие страницы уже посещались пользователем. Вывести список ссылок на все посещенные страницы.