
- •В.С. Романчик
- •Глава 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. Популярные веб-приложения и фреймворки
- •Фреймворки
Рисование с помощью кистей
Весь процесс рисования на холсте производится с помощью цифровой "кисти". Начиная с кисти, используемой по умолчанию, самым простым изменением является изменение толщины кисти. Для этих целей используется функция imagesetthickness():
imagesetthickness($img, $thickness);
Параметр $thickness определяет толщину кисти. Хотя функция imagesetthickness () позволяет рисовать на холсте формы произвольной толщины и цвета, с ее помощью нельзя нарисовать прерывистые линии. Для этих случаев расширение GD предлагает функцию imagesetstyle ():
imagesetstyle($img_r, $style);
Параметр $style дает определение стиля в виде индексированных массивов, в которых в упорядоченном виде содержатся цвета, определяющие кисть в каждом пикселе. Например, если предположить, что существуют переменные Swhite и Sblack, которые определяют соответствующие цвета (белый и черный), то следующий массив может представить "штриховую" кисть:
Sdas = array(Sblack, Sblack, Sblack, Swhite Swhite Swhite);
В этом примере массив Sdas представляет простую кисть, которая состоит из шести пикселей: трех черных, за которыми следуют три белых. Впоследствии этот массив можно передать в качестве параметра Sstyle для функции imagesetstyle (), чтобы определить текущий стиль кисти. После того как стиль будет определен с помощью этой функции, его можно будет использовать для рисования любой геометрической формы, поддерживаемой расширением GD, посредством константы IMGCOLORSTYLED, которая используется вместо того, что обычно может представлять цвет при вызове функции
imagesetstyle () выбирался стиль, после чего константа IMG_COLOR_STYLED, используемая вместо цвета, указывала на то. какой стиль необходимо выбрать в данный момент для рисования.
<?php
header("Content-type: image/jpeg");
$im = imagecreatetruecolor(100, 100);
$w = imagecolorallocate($im, 255, 255, 255);
$red = imagecolorallocate($im, 255, 0, 0);
/* Draw a dashed line, 5 red pixels, 5 white pixels */
$style = array($red, $red, $red, $red, $red, $w, $w, $w, $w, $w);
imagesetstyle($im, $style);
imageline($im, 0, 0, 100, 100, IMG_COLOR_STYLED);
imagejpeg($im);
imagedestroy($im);
?>
Чтобы определить сложные кисти, ширина которых составляет несколько пикселей, необходимо использовать другой способ, который заключается в создании другого изображения "кисти" с помощью функции image setbrush ():
imagesetbrush ($img_r, $brush_r);
Параметр $img_r представляет ресурс изображения, а параметр $brush_r задает другой (иной) ресурс изображения, содержащий требуемую кисть. Этот ресурс избражения кисти ничем не отличается от любого другого представленного вам ресурса изображения, и его можно создать с помощью целого ряда функций работы с изображениями GD. Как и в случае с функцией imagesetstyle (), функцию imagesetbrush () следует вызывать всякий раз при изменении кисти. Как и в случае с функцией imagesetstyle (), вместо цвета необходимо использовать специальную константу IMG_COLOR_BRUSHED всякий раз при вызове функции рисования GD, использующей кисть.
Использование специальных стилей для заливки
Кисти могут быть использованы и для заливки участков холста с помощью функции imagefilledpolygon() или imagefill(). Шаблон заливки называется мозаикой (tile) и определяется с помощью функции:
imagesettile($img, $tile_r);
Параметр $tile_r представляет ресурс изображения, определяющий мозаику. Подобно кистям, мозаика отображается как другое изображение; ее можно загружать и работать с ней с помощью любых графических функций GD. После того как мозаика будет назначена текущей для функций заливки GD, ее можно использовать, определяя специальный цвет IMG_COLOR_TILED в любой графической функции расширения GD, поддерживающей заливку. Пример использования мозаики
<?php //imagepr17
define("WIDTH", 200); define("HEIGHT", 200);
define("T_WIDTH", 20); define("T_HEIGHT",20);
$img = imagecreate(WIDTH, HEIGHT);
$background=$white=imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
$black = imagecolorallocate($img, 0, 0, 0);
$tile = imagecreate (T_WIDTH, T_HEIGHT) ;
$t_bkgr=$t_white=imagecolorallocate($tile, 0xFF, 0xFF, 0xFF);
$t_black = imagecolorallocate($tile, 0,0,0);
imagefilledrectangle($tile,0,0,T_WIDTH/2,T_HEIGHT/2, $t_black);
imagefilledrectangle($tile,T_WIDTH/2,T_HEIGHT/2,T_WIDTH-1, T_HEIGHT-1, $t_black);
imagerectangle($img, 0, 0, WIDTH-1, HEIGHT-1, $black);
imagesettile($img, $tile);
imagefilledrectangle($img,1,1,WIDTH-2,HEIGHT-2,IMG_COLOR_TILED);
header("Content-Type: image/png");
imagepng($img);
?>