
- •В.С. Романчик
- •Глава 2. Использование php.
- •Глава 3.
- •Введение
- •Возможности php.
- •Инструменты для разработки
- •Как php работает
- •Глава 1. Язык php Типы данных
- •Массивы и инициализация массивов
- •Объектно-ориентированное программирование в php Основные понятия ооп
- •Классы и Объекты
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и директива error_reporting
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •MySql – сервер: бд1; бд2; бд3; бд4;
- •Язык запросов sql
- •Операция соединения.
- •Команды sql для создания баз данных и таблиц
- •Выборка данных из таблиц бд
- •Работа с MySql (сохранение данных в базе данных).
- •Работа с MySql занесение и получение данных из базы данных
- •Некоторые улучшения в организации работы с данными
- •Передача данных от клиента к серверу и от сервера клиенту
- •Клиентские методы http get, post, head
- •Обработка html-форм и передача переменных в скрипт.
- •Передача значений переменных по методу get
- •Ниже рассмотрен еще один пример передачи данных из клиентской формы на сервер по методу get
- •Передача данных на сервер по методу post
- •Php и обработка различных форм
- •Примеры обработки форм
- •Работа с e-mail
- •Отправка почты на php (Функция mail)
- •Cookies-наборы: сохраненное состояние
- •Сессии (Сеансы) Переменные сеанса
- •Отмена регистрации сеансовых переменных
- •Работа с сеансовыми переменными
- •Постоянные данные, использующие сеансы и cookie-наборы
- •Вывод графических данных с помощью рнр Основной способ создания изображений
- •Получение информации об изображении
- •Функции рисования прямых и кривых линий
- •Заливка изображений
- •Работа с палитрой изображения
- •Удаление и изменение цветов палитры
- •Создание прозрачности в изображениях
- •Рисование с помощью кистей
- •Использование специальных стилей для заливки
- •Использование шрифтов и вывод строк
- •Манипулирование и копирование изображений
- •Создаём графический информер на php
- •Слияние изображений с помощью gd
- •Включения удаленных файлов
- •Различные приложения и полезные скрипты на php
- •Пример. Определение типа и версии браузера
- •Генератор паролей на php
- •Время выполнения скрипта
- •Календарь
- •Загрузка файла от клиента на сервер
- •Работа с ftp на уровне php
- •Сбор статистики на php
- •Проверка ввода емайл
- •Чтение почты через Web-интерфейс
- •Разработка собственных листов рассылки
- •Рассылаем письма
- •Добавляем адреса в список рассылки
- •Редактирование адресов
- •Автоответчик
- •Почтовые функции в рнр
- •Задания для выполнения
- •Приложение 1. Протокол передачи гипертекстов http
- •Клиентские методы и заголовкиHttp
- •Указатель ссылки ("Referer")
- •Медиа-типы
- •Кодирование
- •Безопасность и авторизация
- •Кэширование содержимого http на стороне клиента
- •Http идентификация с php
- •Сжатие данных в протоколе http
- •Модель ajax: между загруженной в браузер страницей и сервером появляется прослойка - уровень ajax, который обеспечивает следующую последовательность выполнения приложения.
- •Класс xmlHttpRequest
- •Методы класса xmlHttpRequest
- •Свойства класса xmlHttpRequest
- •Создание экземпляра объекта xmlHttpRequest
- •Использование dom
- •Проблема с кешированием
- •Информируйте пользователя
- •Нет принципов написания кода
- •Аутентификация средствами php
- •Отделение клиентская части программы от серверной части и шаблоны
- •Использование шаблонов в php
- •Шаблоны подстановки
- •Создаем свои шаблоны в php
- •Теги, атрибуты, значения
- •Структура документа
- •Разрыв строки
- •Предварительное форматирование
- •Комментарии
- •Физическая и логическая разметка документа
- •«Физические» теги:
- •«Логические» теги:
- •Специальные символы
- •Графика
- •Формы html
- •Метатеги
- •Способы включения каскадных таблиц стилей
- •Синтаксис
- •Группирование
- •Наследование
- •Множественные классы.
- •Селекторы идентификаторов (id-селекторы).
- •Комментарии
- •Свойства шрифтов.
- •Свойства текста.
- •Представление документа в виде специальных областей – блоков
- •Отступы, поля, позиционирование.
- •Границы элементов.
- •Визуальные эффекты
- •Свойства списков
- •Свойства таблиц
- •Псевдоклассы
- •Псевдостили текста
- •Псевдоэлементы
- •Различные свойства
- •Css. Примеры
- •Типы данных
- •Ассоциированные массивы
- •Операторы
- •Подпрограммы
- •Приложение 11. Популярные веб-приложения и фреймворки
- •Фреймворки
Операторы
В языке Perl используются операторы, аналогичные используемым в C++. Например условные операторы имеют вид:
if (EXPR) {BLOCK}
if (EXPR){ BLOCK} else{ BLOCK}
if (EXPR) BLOCK elsif (EXPR) {BLOCK} else {BLOCK}
#Пример
$var = 1;
if ($var == 0)
{ print "\$var = 0\n"; }
elsif ($var == 1)
{ print "\$var = 1\n"; }
else
{ print "Не известное \$var\n"; }
Результат: $var = 1
В Perl используются следующие операторы циклов:
LABEL while (EXPR){ BLOCK}
LABEL while (EXPR) {BLOCK} continue{ BLOCK}
LABEL for (EXPR; EXPR; EXPR) {BLOCK}
LABEL foreach VAR (LIST) {BLOCK}
Цикл while выполняет BLOCK до тех пор пока EXPR = true. Блок после continue выполняется всегда перед вычислением выражения EXPR. Метка LABEL используется, чтобы пометить цикл, который надо прервать, и необходима при использовании внутри блока операторов next, last и redo. Если метка отсутствует, то эти операторы ссылаются на начало ближайшего цикла. Оператор next подобно оператору continue в Си переходит к началу текущего цикла.
M1:
while ($i < 6)
{ ++$i; # Увеличиваем счетчик на 1
next M1 if $i < 3; # Переходим в начало если $i < 3
++$i; # иначе увеличиваем счетчик еще раз на 1
}
continue
{ print "$i "; # Печатаем $i
}
Результат: 1 2 4 6
Оператор last - подобно оператору break в языке Си немедленно прерывает цикл. Оператор redo предписывает начать новый цикл не вычисляя EXPR и не выполняя блок continue.
Пример:
M1:
while ($i < 6)
{ ++$i; # Увеличиваем счетчик на 1
redo M1 if $i == 3; # Далее пропустить для $i = 3
++$i; # иначе увеличиваем счетчик еще раз на 1
}
continue { print "$i "; # Печатаем $i
}
Результат: 2 5 7
Оператор for полностью аналогичен оператору for в Си.
Цикл foreach имеет вид: LABEL foreach VAR (LIST) {BLOCK}
Переменной VAR присваивается поочередно каждый элемент списка LIST и выполняется блок. Вместо слова foreach можно писать просто for - это слова синонимы.
Пример:
@месяц = ("январь","февраль","март"); # Создали массив
foreach $i (@месяц)
{ print $i," "; # Печать $i
}
for $i (3,5,7)
{ print "$i "; }
Результат: январь февраль март
3 5 7
В Perl существует оператор goto.
Рассмотрим пример небольшой программы:
#!/usr/local/bin/perl
@passwords = qw (inet basic net);
print ”Enter the login: ”;
$login = <STDIN>;
chomp ($login);
if ($login eq ”Root”) {
print ”Hello, Administrator! Glad to see you again!\n ”;}
else { print ”Enter password: ”;
$pass = <STDIN>;
chomp ($pass);
$i = 0; $flag = ”no”;
while ($flag eq ”no”) {
if ($passwords[$i] eq $pass) {$flag = ”yes”;}
elseif ($i <2) {$i = $i + 1;}
else {print ”Incorrect password for $login, try again.\n”;
print ”Enter password: ”;
$pass = <STDIN>;
chomp ($pass);
$i = 0; }
}
}
В рассматриваемом случае массив @passwords включает три элемента: inet, basic, net. Команда qw(), заключающая их в скобки, освобождает от ввода кавычек, необходимого при использовании общепринятой конструкции вида @passwords = (”inet”, ”basic”, ”net”); Оператор print служит для вывода на экран символьной информации print ”Enter the login: ”.
Затем располагается оператор ввода строки с терминала, выполняющегося в Perl с помощью конструкции <STDIN>. Переменная $login содержит и завершающий символ строки, например, Root будет введено как Root\n. Чтобы убрать лишний символ, требуется функция chomp, которая в качестве своего единственного параметра принимает скалярную переменную и удаляет из нее завершающий символ перехода на новую строку, если этот символ там присутствует: chomp ($login);
Наличие значения переменной $pass среди элементов массива @passwords проверяет $passwords[$i] eq $pass. Следующая ниже операция сложения $i = $i + 1; увеличивает текущее значение счетчика.