ВВЕДЕНИЕ
О чем рассказывается в этой книге
Кому предназначена эта книга
Технологические требования
Соглашения по оформлению содержания
Сообщите нам свое мнение

Глава 1. Что такое PHP?
Знакомство с PHP
Это началось...
А в настоящее время...
Стиль книги и ее структура
В заключение
Полезные сайты в Web

Глава 2. Установка и конфигурирование PHP
Установка
Платформы и web-серверы
Модули PHP
Сравнение PHP как интерпретатора
CGI и как модуля Apache
Как получить дистрибутив
Компилирование и установка под Unix
Тестирование и измерение
производительности
Установка под Windows
Конфигурирование
Конфигурирование во время
компиляции
Конфигурирование с помощью
директив Apache
Конфигурирование с использованием
файла php3.ini
MySQL
Установка MySQL
Конфигурирование прав доступа
Библиотека Бутелла GD версии 1.3 - поддержка
создания GIF
Поддержка Expat - анализатора XML
Резюме
Дополнительные материалы для чтения

Глава 3. Программирование в среде Web
Зачем нужно использовать PHP?
Недостатки HTML
Web - новое поколение
Статические публикации
Активные Web-сайты
Создание страницы PHP
PHP и код, выполняемый на стороне
клиента
Переменные PHP
Взаимодействие с пользователем
Обработка данных формы
Форма заявления о приеме на работу
Введение в кодировку URL
Комментарии в коде
Преобразование символов в escape-
последовательности
Резюме

Глава 4. Переменные, константы и типы данных
Типы данных
Литералы и идентификаторы
Значения данных
Константы
Определение констант
Функция defined()
Встроенные константы
Объявление и инициализация переменных
Приведение и преобразование типов
Преобразование строк и приведение
типов
Преобразование типа
Изменяемые переменные
Полезные функции для работы с переменными
gettype()
settype()
set() и unset()
empty()
Функции is...()
Функции ...val()
Создание электронной формы заявления о
приеме на работу
Добавление констант
Резюме

Глава 5. Операторы
Арифметические операторы
Унарный оператор
Оператор присваивания значения переменной
Операторы сравнения
Логические операторы
Оператор конкатенации строк
Тернарный оператор
Поразрядные операторы
Сокращенная запись для присвоения значений
переменным
Разные операторы
Операторы переменных
Операторы объектов
Оператор подавления ошибки
Приоритетность выполнения операторов и
ассоциативность
Создание электронной формы заявления о приеме
на работу
Резюме

Глава 6. Операторы языка PHP
Условные операторы
Оператор if
Ветвление условий
Оператор switch
Циклы
Циклы while
Циклы do...while
Циклы for
Включение файлов в страницы PHP
Выход из страницы PHP
Создание электронной формы заявления о
приеме на работу
Резюме

Глава 7. Функции
Как работают функции
Передача аргументов
Область видимости и время жизни
еременных
Вложенные функции и рекурсия
Присвоение функций переменным
Создание электронной формы заявления о
приеме на работу
Резюме

Глава 8. Массивы
Простые массивы
Инициализация массивов
Циклический проход массива
Массивы, индексируемые строками
Многомерные массивы
Функции сортировки
Использование массивов с элементами
формы
Резюме

Глава 9. Объектно-ориентированное
программирование
Что такое объектно-ориентированное
программирование?
Классы
Создание экземпляра класса
Наследование
Резюме

Глава 10. Обработка строк и регулярные
выражения
Основные функции обработки строк
Регулярные выражения
Основы поиска по шаблону
Функции регулярных выражений
Создание электронной формы заявления
о приеме на работу
Резюме

Глава 11. Работа с файлами и хранение данных
Работа с файлами
Открытие файлов
Закрытие файлов
Вывод файлов
Чтение из файлов
Запись в файлы
Перемещение по файлам
Копирование, удаление и
переименование файлов
Определение атрибутов файла
Работа с каталогами
Загрузка клиентом файлов на сервер
Обработка загруженных файлов
на сервере
Проверка файлов
Уточнение приложения электронной
формы подачи заявления о приеме
на работу
Нереляционные базы данных
Спецификация программы
Пользовательский интерфейс
адресной книги
Общий обзор программы
Поиск в базе данных
Удаление записи
Вывод записи
Редактирование адресной книги
Обновление базы данных
Добавление новой записи
Импортирование данных из файлов
CSV
Соединим все это вместе
Резюме

Глава 12. PHP и базы данных SQL
Для чего нужны базы данных?
Архитектура приложения с
поддержкой базы данных в Web
Структурированный язык запросов
Справочник по языку SQL
Поддержка соединений с базами данных
в PHP
База данных MySQL
Поддержка MySQL API в PHP
Пример приложения php-mysql
Резюме

Глава 13. PHP и LDAP
Службы каталогов и LDAP
LDAP - протокол доступа к
каталогам
Операции LDAP
Программное обеспечение LDAP
Поддержка LDAP в PHP
Резюме

Глава 14. XML
Что такое XML?
Для чего нам нужен XML?
Язык XML
Структура документа XML
Определение типа документа
Поддержка XML в PHP
API PHP XML
Создание анализатора XML
Регистрация функций-обработчиков
Анализ документа XML
Удаление анализатора
Параметры анализатора
Вспомогательные функции
Приложения XML, использующие PHP
Организация поддержки Web в
промышленных приложениях
Интеллектуальный поиск
Преобразование XML в HTML
Различные представления одних и
тех же данных
Пример приложения XML, использующего PHP
Резюме

Глава 15. Создание и обработка изображений
Изображения и сценарии, выполняющиеся
на сервере
Изображения в документах HTML
HTTP и изображения
Форматы изображений
Библиотека GD
Обработка изображений в PHP
Установка PHP с поддержкой работы
с изображениями
API для работы с изображениями в PHP
Использование графических функций в
приложениях
Пример графического приложения
в PHP
Страница счетчика посещений
Подсчет числа посещений
Генерация изображения
Резюме

Глава 16. PHP и сетевые протоколы
Клиенты и серверы
Использование TCP
Функция whois
Создание интерфейсной части
Расширение интерфейсной части
Есть ли доступ к моему домену?
Клиент Web
Резюме

Глава 17. Отправка и получение электронной
почты
Отправка электронной почты
Команда mail()
Класс mime_mail
Использование SMTP
Получение электронной почты
Резюме

Глава 18. Cookies
Что такое cookies?
Ограничения cookie
Cookies в PHP
Введение
What is Your Name?
Обращение к cookie
Установка cookie
Многозначные cookies
Установка срока годности
Ограничение области действия
cookie
Удаление cookie
Часто встречающиеся ошибки
Отправка заголовков HTTP
Резюме

Глава 19. Отладка и обработка ошибок
Типы ошибок
Синтаксические ошибки
Семантические ошибки
Логические ошибки
Ошибки окружающей среды
Сообщения PHP об ошибках
Уровни ошибок в PHP
Установка уровня сообщений
об ошибках
Обработка ошибок
Подавление сообщений об
ошибках
Восстановление после ошибок
Специальные методы обработки
ошибок
Регистрация ошибок в журнале
Удаленный отладчик
Часто случающиеся ошибки
Повторная посылка заголовка
Неопределенная функция
Ошибки "волшебных" кавычек
Максимальное время выполнения
Резюме

Глава 20. Защита данных
Важность защиты данных
Заботиться о защите с самого начала
Защита Web-сервера
Права доступа к каталогам ServerRoot
Запрет пользователям переопределять
настройки сервера
Защита файлов на сервере
Выделение пользователям собственных
домашних страниц
Включения на стороне сервера (SSI)
Разрешение выполнения CGI-программ
только из определенных каталогов
Размещение анализатора PHP за пределами
дерева Web
Защита установки PHP
Часто используемые параметры конфигурации
Параметры, относящиеся к базе данных
Использование защищенного режима
Идентификация и аутентификация пользователей
Аутентификация пользователей Web-
сервером
Идентификация и аутентификация
пользователей с помощью PHP
Проверка IP-адреса
Применение криптографии
Использование шифрования
Использование хеш-функций
Защита операций с помощью SSL
Загрузка OpenSSL и ModSSL
Компиляция и установка библиотеки
OpenSSL
Компиляция OpenSSL как динамически
компонуемых библиотек
Явное задание платформы и компилятора
Компиляция OpenSSL с помощью
инструментального средства RSAREF
Компиляция и установка mod_ssl
Как использовать сценарий Apache configure
при работе с mod_ssl
Основы конфигурирования SSL
Установка секретного криптографического
ключа
Создание запроса сертификата и временный
сертификат
Получение заверенного сертификата
Использование механизма suEXEC в Apache
Создание безопасных сценариев PHP
Защита от дурака
Хранение и передача конфиденциальной
информации
Проверка данных, вводимых
пользователем
Резюме

Глава 21. Волшебство с кавычками
Постановка задачи
Процесс преобразования
Определяем пространство переменных
Применение волшебных кавычек
Две вспомогательные функции
Альтернативный подход
Резюме

Глава 22. Шаблоны
Общие технологии разработки
шаблонов
Использование шаблонов в приложениях
Встроенный PHP
Разделение общих частей
Использование FastTemplate
Инструментарий сайта
Существующий код и FastTemplate
Резюме

Пример 1. Корзина покупателя.
Анализ требований к корзине
покупателя
Требования конечных пользователей
Требования администратора
Выбор программного обеспечения
для приложения
Альтернативы внутренней базе данных
Альтернативы промежуточному уровню
Взаимодействие конечного пользователя с
приложением, реализующем покупательскую
корзину
Разработка приложения "Корзина покупателя"
Разработка схемы данных
Пользователь базы данных
Индексы
Соображения о проектировании
промежуточного уровня
Аутентификация
Хранение переменных сессии
Производительность
Установка
Реализация возможностей, доступных
конечному пользователю
Исходный код приложения
Регистрация нового пользователя
Вход в систему
Выход их системы
Просмотр всех названий книг
Просмотр всех музыкальных
альбомов
Поиск по базе данных
Добавляем элементы в корзину
покупателя
Вывод содержимого корзины
покупателя
Изменение количества элементов
в корзине покупателя
Оплата
Просмотр учетной записи
Реализация возможностей,
доступных администратору
Регистрация в системе
Выход из системы
Управление пользователями
Удаление всех выбранных
пользователей
Просмотр транзакций пользователя
Транзакции за день
Отправка заказа
Поиск пользователей
Резюме

Пример 2. Форум
Почему PHP?
Поддержка баз данных
PHP, встроенный в HTML
Исключительная обработка ошибок
Как работает Phorum
Обзор интерфейса
Исходный код
Повторное использование кода
Уровень абстракций базы данных
Создание PHP-кода на лету
Хранение пользовательских данных в
cookie
Новые сообщения
Пользовательская информация
Сердце всего: файл forums.inf
Вывод списка форумов
Вывод списка сообщений
Чтение сообщений
Отправка сообщений
Поиск
Резюме

Пример 3. Приложение для работы с
электронной почтой
list.php
view.php
delete.php
compose.php
reply.php
sendmail.php
Резюме

Пример 4. Просмотрщик базы данных
Разработка приложения
Почему PHP?
Архитектура приложения
Первый уровень
Второй уровень
Третий уровень
Схема базы данных
Таблица protein
Таблица site
Общий дизайн сценариев
Простой сценарий, выполняющий
SQL-запросы
Включение внешних модулей функций
Создание SQL-запросов
Сценарии, не зависящие от базы данных
Вывод результатов
Запрос по полю идентификаторов
Расширение интерфейса поиска
Итоговые размышления
Резюме

Приложение A. PHP-функции

Приложение B. PHP4 и Zend
Текущее состояние PHP4
PHP4 и Web-серверы
Управление сессиями
Буферизация вывода
Поддержка Java
Дополнительные возможности
Zend и PHP4
Несовместимость между PHP3 и PHP4

Приложение C. Список HTML-тегов от
Wrox

Приложение D. HTTP-запросы и ответы
Протоколы запросов URL
Основы HTTP
Запросы клиентов
Методы HTTP-запросов
Ответы сервера
HTTP-заголовки
Переменные окружения сервера

Приложение E. Регулярные выражения

Приложение F. Программное обеспечение с
открытым исходным кодом
Преимущества использования программного
обеспечения с открытым исходным кодом
Примеры проектов с открытым исходным кодом
Резюме
Дальнейшая информация
Open Software Definition (OSD), version 1.7
Типы программного обеспечения
Рекомендуемая литература.

Приложение G. Ресурсы

Приложение H. Поддержка и найденные ошибки