
- •В.С. Романчик
- •Глава 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. Популярные веб-приложения и фреймворки
- •Фреймворки
Включения удаленных файлов
PHP позволяет работать с объектами URL, как с обычными файлами. Упаковщики, доступные по умолчанию, служат для работы с удаленными файлами с использованием протокола ftp или http.
Для того, чтобы удаленное включение файлов было доступно, необходимо в конфигурационном файле (php.ini) установить allow_url_fopen=1.
<?php
/* Здесь предполагается, что www.example.com сконфигурирован для разбора .php файлов, а не .txt файлов. Также 'Works' здесь означает, что переменные $foo и $bar доступны в подключённом файле. */
// Не будет работать, так как file.txt не обрабатывается //www.example.com как PHP
include 'http://www.example.com/file.txt?foo=1&bar=2';
// Не будет работать, поскольку ищет файл //'file.php?foo=1&bar=2' в локальной файловой системе.
include 'file.php?foo=1&bar=2';
// Следующий пример работает:
include 'http://www.example.com/file.php?foo=1&bar=2';
$foo = 1;
$bar = 2;
include 'file.txt'; // Работает
include 'file.php'; // Работает
?>
Различные приложения и полезные скрипты на php
Рассмотрим некоторые полезные скрипты для определения типа браузера, определения версии браузера, проверки формы ввода емайл. Необходимая информация хранится в суперглобальных переменных $GLOBALS, $_SERVER, $_GET, $_POST, $_FILES, $_COOKIE, $_SESSION, $_REQUEST, $_ENV . Имена конкретных переменных являюся ключами-индексами этих массивов. Например, в стандартной преременной $HTTP_USER_AGENT хранятся различные сведения о браузере и операционной системе пользователя-клиента. Эту информацию можно вывести на экран одним из двух способов:
<?PHP
$ip = $_SERVER['HTTP_USER_AGENT'];
echo $ip,"<br>";
$agent=getenv("HTTP_USER_AGENT");
echo $agent;
?>
Вывод:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.8 (KHTML, like Gecko)Chrome/5.0.396.0Safari/533.8 Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.8 (KHTML, like Gecko) Chrome/5.0.396.0 Safari/533.8
Всю необходимую информацию можно извлечь из строки.
Пример. Определение типа и версии браузера
Определение браузера может потребоваться, так как в различных браузерах по разному может отображаться содержимое страниц
<? //app2.php
$agent=getenv("HTTP_USER_AGENT");
if(strstr($agent,'MSIE 8.0'))
{ echo " Код для IE 8.0","<br>"; }
else{
if (strstr($agent,'Chrome/5.0'))
{ echo " Код для Chrome/5.0","<br>"; }
else {
echo " Код не для IE и не для Chrome","<br>";
echo " Браузер иной версии ","<br>";
}
}
echo $agent;
?>
Вывод для Chrome/5.0:
Код для Chrome/5.0
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.8 (KHTML, like Gecko) Chrome/5.0.396.0 Safari/533.8
В следующем примере возвращается тип и версия браузера и ОС:
<?php
// Назначение: Возвращает тип и версию браузера
function browser_info ($agent) {
// Определить тип браузера
// Искать сигнатуру Internet Explorer
if (ereg('MSIE ([0-9].[0-9]{1,2})', $agent , $version))
{$browse_type = "IE";
$browse_version= $version[1];
}
// Искать сигнатуру Opera
elseif (ereg( 'Opera ([0-9].[0-9]{1,2})', $agent, $version))
{$browse_type = "Opera";
$browse_version = $version[1];}
// Искать сигнатуру Netscape. Проверка браузера Netscape
// *должна* выполняться после проверки Internet Explorer и Opera,
// поскольку все эти браузеры любят сообщать имя
// Mozilla вместе с настоящим именем.
// Если это не Internet Explorer, Opera или Netscape.
// значит, мы обнаружили неизвестный браузер,
else
{$browse_type = "Unknown";
$browse_version = "Unknown";}
// Вернуть тип и версию браузера в виде массива
return array ($browse_type, $browse_version);
} // Конец функции browser_info
// Функция: opsys_info
// Назначение: Возвращает информацию об операционной системе пользователя
function opsys_info($agent) {
// Идентифицировать операционную систему
// Искать сигнатуру Windows
if ( strstr ($agent , 'win') ) :
$opsys = "windows";
// Искать сигнатуру Linux
elseif ( strstr($agent, 'Linux') ) :
$opsys = "Linux";
// Искать сигнатуру UNIX
elseif ( strstr ($agent, 'Unix') ) :
$opsys = "Unix";
// Искать сигнатуру Macintosh
elseif ( strstr ($agent, 'Mac') ) :
$opsys = "Macintosh";
// Неизвестная платформа else :
$opsys = "Unknown";
endif;
// Вернуть информацию об операционной системе
return $opsys;
} // Конец функции opsys_info
// Сохранить возвращаемый массив в списке
list($browse_type,$browse_version)=browser_info ($HTTP_USER_AGENT);
$operating_sys = opsys_info ($HTTP_USER_AGENT);
print "Browser Type: $browse_type <br>";
print "Browser Version: $browse_version <br>";
print "Operating System: $operating_sys <br>";
?>