Предисловие
  Чего хочет программист от своей профессии
  Временные затраты 
  О чем эта книга
  Общая структура книги

ЧАСТЬ I. ОСНОВЫ WEB-ПРОГРАММИРОВАНИЯ

  Глава 1. Принципы работы Интернета
    Протоколы передачи данных
    Семейство TCP/IP
    Адресация с Сети
      IP-адрес 
      Доменное имя 
      Порт
    Терминология
      Сервер 
      Узел 
      Порт
      Сетевой демон 
      Провайдер 
      Хост 
      Виртуальный хост 
      Хостинг-провайдер (хостер) 
      Хостинг 
      Сайт
      HTML-документ 
      Страница (или HTML-страница)
      Web-программирование
    World Wide Web и URL
      Протокол 
      Имя хоста 
      Порт
      Путь к странице 

  Глава 2. Интерфейс CGI
    Что такое CGI?
    Секреты URL
    Заголовки и метод GET 
      GET
      POST
      Content-type
      User-Agent
      Referer 
      Content-length 
      Cookie
      Accept 
      Эмуляция браузера через telnet 
    Метод POST 
    Кодировки и форматы данных 
    Что такое формы и для чего они нужны
      Передача параметров "вручную"
      Использование формы 
      Абсолютный и относительный путь к сценарию
      Метод POST и формы 

  Глава 3. CGI изнутри
    Передача документа пользователю
      Заголовки ответа
      Пример CGI-сценария
    Передача информации CGI-сценарию
      Переменные окружения 
      Передача параметров методом GET 
      Передача параметров методом POST
      Расшифровка URL-кодированных данных 
    Формы 
      Тэг <input> - различные поля ввода
      Тэг <textarea> - многострочное поле ввода текста 
      Тэг <select> - список
    Загрузка файлов
      Формат данных
      Тэг загрузки файла (file) 
    Что такое Cookies и с чем их едят 
      Установка Cookie 
      Получение Cookies из браузера
      Пример программы для работы с Cookies
    Авторизация

ЧАСТЬ II. ВЫБОР И НАСТРОЙКА ИНСТРУМЕНТАРИЯ.
    WEB-СЕРВЕР APACHE

  Глава 4. Установка Apache 
    Введение: зачем нужен домашний сервер? 
    Дистрибутивы и ссылки
    От слов к делу: установка Apache 
      Этап первый: установка
      Этап второй: настройка файла конфигурации Apache
      Этап третий: тестирование Apache 
    Виртуальные хосты Apache 

  Глава 5. Установка PHP и MySQL 
    Установка PHP
    Настройка Apache для работы с PHP
    Тестирование PHP 
    Установка дополнительных модулей
    Установка MySQL
    Тестирование MySQL

ЧАСТЬ III. ОСНОВЫ ЯЗЫКА PHP

  Глава 6. Характеристика языка PHP
    Интерпретатор или компилятор?
    Достоинства и недостатки интерпретатора 
    Пример PHP-программы
    Использование PHP в Web

  Глава 7. Переменные, константы, выражения 
    Переменные
      Типы переменных
      Действия с переменными
      Определение типа переменной
      Установка типа переменной 
    Оператор присваивания 
    Ссылочные переменные
      Жесткие ссылки
      Символические ссылки
    Некоторые условные обозначения
      string
      int, long 
      double, float 
      bool 
      array 
      list 
      object
      void 
      mixed
    Константы 
      Предопределенные константы
      Определение констант 
      Проверка существования константы
    Выражения
      Логические выражения
      Строковые выражения
    Операции
      Арифметические операции
      Строковые операции 
      Операции присваивания 
      Операции инкремента и декремента
      Битовые операции 
      Операции сравнения 
      Операции эквивалентности 
      Логические операции 
    Оператор отключения предупреждений 

  Глава 8. Работа с данными формы 
    Передача данных командной строки
    Формы 
    Трансляция полей формы в переменные 
    Трансляция переменных окружения и Cookies 
    Трансляция списков
    Трансляция массивов 

  Глава 9. Конструкции языка 
    Инструкция if-else
    Использование альтернативного синтаксиса
    Цикл с предусловием while 
    Цикл с постусловием do-while 
    Универсальный цикл for
    Инструкции break и continue 
    Нетрадиционное использование do-while и break
    Цикл foreach 
    Конструкция switch-case 
    Инструкция require
    Инструкция include
    Трансляция и проблемы с include 
    Инструкции однократного включения

  Глава 10. Ассоциативные массивы 
    Создание массива "на лету". Автомассивы 
    Инструкция list() 
    Списки и ассоциативные массивы: путаница?
    Инструкция array() и многомерные массивы
    Операции над массивами
      Доступ по ключу
      Функция count()
      Слияние массивов 
      Косвенный перебор элементов массива 
      Прямой перебор массива 
    Списки и строки
    Сериализация

  Глава 11. Функции и области видимости
    Пример функции
    Общий синтаксис определения функции
      Инструкция return 
      Параметры по умолчанию 
      Передача параметров по ссылке 
      Переменное число параметров 
    Локальные переменные
    Глобальные переменные
      Массив $GLOBALS
    Статические переменные 
    Рекурсия 
    Вложенные функции 
    Условно определяемые функции
    Передача функций "по ссылке" 
    Возврат функцией ссылки
    Пример функции: Dump() 
    Несколько советов по использованию функций

ЧАСТЬ IV. СТАНДАРТНЫЕ ФУНКЦИИ PHP

  Глава 12. Строковые функции 
    Конкатенация строк
    О сравнении строк и инструкции if-else 
    Функции для работы с одиночными символами
    Функции отрезания пробелов 
    Базовые функции
    Работа с блоками текста
    Функции для преобразований символов
    Функции изменения регистра 
    Установка локали (локальных настроек)
    Преобразование кодировок
    Функции форматных преобразований 
    Работа с бинарными данными
    Хэш-функции
    Сброс буфера вывода 

  Глава 13. Работа с массивами
    Сортировка массивов 
      Сортировка массива по значениям (asort()/arsort()) 
      Сортировка по ключам (ksort()/krsort())
      Сортировка по ключам при помощи функции uksort() 
      Сортировка по значениям при помощи функции uasort() 
      Переворачивание массива array_reverce()
      Сортировка списка sort()/rsort()
      Сортировка списка при помощи функции usort()
      Перемешивание списка shuffle() 
    Ключи и значения
    Комплексная замена в строке 
    Слияние массивов
    Получение части массива
    Вставка/удаление элементов
    Переменные и массивы 
    Создание списка - диапазона чисел

  Глава 14. Математические функции
    Встроенные константы
    Функции округления 
    Случайные числа 
    Перевод в различные системы счисления 
    Минимум и максимум
    Степенные функции 
    Тригонометрия

  Глава 15. Работа с файлами
    О текстовых и бинарных файлах
    Открытие файла
      Конструкция or die() 
      Безымянные временные файлы
    Закрытие файла 
    Чтение и запись
      Блочные чтение/запись 
      Построчные чтение/запись 
      Чтение CSV-файла 
    Положение указателя текущей позиции
    Функции для определения типов файлов 
      Определение типа файла 
      Определение возможности доступа 
    Определение параметров файла
      Специализированные функции 
    Функции для работы с именами файлов
    Функции манипулирования целыми файлами 
    Другие функции
    Блокирование файла
      Типы блокировок
      Блокировки с запретом "подвисания"
      Пример счетчика 

  Глава 16. Работа с каталогами 
    Манипулирование каталогами 
    Работа с записями
    Пример: печать дерева каталогов

  Глава 17. Каналы и символические ссылки 
    Каналы
    Символические ссылки 
    Жесткие ссылки 

  Глава 18. Запуск внешних программ

  Глава 19. Работа с датами и временем 
    Представление времени в формате timestamp
    Работа с датами
    Григорианский календарь

  Глава 20. Посылка писем через PHP
    Функция отправки письма 
    Проблема с кодировками 
      Посылка в указанной кодировке 
      Динамическая смена кодировки
      Проблема с заголовками
    Перспективы: создание "умной" функции для отправки писем

  Глава 21. Работа с WWW
    Установка заголовков ответа
      Вывод заголовка
      Запрет кэширования
    Получение заголовков запроса 
    Работа с Cookies
      Немного теории 
      Установка Cookie 
      Получение Cookie
    SSI и функция virtual() 
      Эмуляция функции virtual()

  Глава 22. Основы регулярных выражений в формате RegEx
    Начнем с примеров
      Пример первый
      Пример второй
      Выводы
    Терминология
    Использование регулярных выражений в PHP 
      Сопоставление
      Сопоставление с заменой
    Язык RegEx
      Простые символы
      Квантификаторы повторений
      Мнимые символы
      Оператор альтернативы
      Группирующие скобки
      "Карманы"
    Дополнительные функции 
    Примеры использования регулярных выражений 
      Имя и расширение файла
      Имя каталога и файла 
      Проверка на идентификатор
      Модификация тэгов
      Преобразование гиперссылок
      Преобразование адресов E-mail 
      Выделение всех уникальных слов из текста
    Заключение 

  Глава 23. Работа с изображениями
    Универсальная функция GetImageSize()
    Работа с изображениями и библиотека GD
    Пример
    Создание изображения
    Определение параметров изображения 
    Сохранение изображения
    Работа с цветом в формате RGB
      Создание нового цвета
      Получение ближайшего цвета
      Эффект прозрачности 
      Получение RGB-составляющих 
    Графические примитивы
      Копирование изображений
      Прямоугольники
      Линии 
      Дуга сектора
      Закраска произвольной области
      Многоугольники
      Работа с пикселами 
    Работа с фиксированными шрифтами
      Загрузка шрифта
      Параметры шрифта 
      Вывод строки
    Работа со шрифтами TrueType
      Вывод строки
      Определение границ строки 
      Пример 

  Глава 24. Управление интерпретатором
    Информационные функции
    Настройка параметров PHP 
      error_reporting
      magic_quotes_gpc on/off
      max_execution_time 
      track_vars on/off
    Контроль ошибок
      Оператор отключения ошибок 
      Пример использования оператора @
    Принудительное завершение программы
    Финализаторы
    Генерация кода во время выполнения 
      Выполнение кода
      Генерация функций
      Проверка синтаксической корректности кода
    Другие функции

  Глава 25. Управление сессиями
    Зачем нужны сессии? 
    Механизм работы сессий 
    Инициализация сессии 
    Регистрация переменных 
    Идентификатор сессии и имя группы 
      Имя группы сессий
      Идентификатор сессии
    Другие функции
    Установка обработчиков сессии
      Обзор обработчиков
      Регистрация обработчиков 
      Пример: переопределение обработчиков
    Сессии и Cookies
      Явное использование константы SID
      Неявное изменение гиперссылок 
      Неявное изменение формы
      Так использовать Cookies в сессиях или нет? 

  Глава 26. Работа с базой данных MySQL
    Неудобство работы с файлами
    Устройство MySQL
    Соединение с базой данных
    Обработка ошибок
    Выполнение запросов к базе данных
    Язык запросов MySQL
      Создание таблицы
      Удаление таблицы
      Вставка записи
      Удаление записей 
      Поиск записей
      Обновление записей
      Получение числа записей, удовлетворяющих выражению
      Получение уникальных значений столбцов 
    Получение результата
      Параметры результата 
      Получение поля результата
      Получение целой строки результата 
      Получение информации о результате 
      Пример использования функций поддержки MySQL
    Уникальные идентификаторы в MySQL
    Работа с таблицами 

  Глава 27. Сетевые функции
    Работа с сокетами 
    Функции для работы с DNS
      Разрешение IP-адреса в доменное имя и наоборот
      Корректный перевод IP-адреса в доменное имя 

ЧАСТЬ V. ПРИЕМЫ ПРОГРАММИРОВАНИЯ НА PHP

  Глава 28. Загрузка файлов на сервер 
    Multipart-формы
    Тэг выбора файла 
    Закачка файлов и безопасность 
    Поддержка закачки в PHP
      Простые имена полей закачки
      Пример: фотоальбом
      Сложные имена полей 
      Проблемы со сложными именами

  Глава 29. Модульность программы. Написание "библиотекаря"
    Наши требования
    Библиотекарь 
    Работа с библиотекарем 
    Автоматическое подключение библиотекаря
      Способ первый: использование auto_prepend_file 
      Способ второй: установка обработчика Apache
    Обработчики Apache
      Перехват обращений к несуществующим страницам 
      Связывание PHP с другим расширением 
      Решение проблемы зацикливания обработчика 

  Глава 30. Код и шаблон страницы 
    Идеология
    Двухуровневая схема
      Шаблон страницы 
      Генератор данных
      Взаимодействие генератора данных и шаблона 
      Недостатки
    Трехуровневая схема 
      Шаблон страницы 
      Диаграммы двухуровневой и трехуровневой моделей 
      Интерфейс
      Ядро
      Проверка корректности входных данных
    Шаблонизатор
      Традиционное построение страниц
      Что такое шаблонизатор? 
      Описание шаблонизатора 
      Обработчик Apache для шаблонизатора 
      Главный модуль шаблонизатора
    "Перехват" выходного потока
      Стек буферов 
      Проблемы с отладкой

  Глава 31. Объектно-ориентированное программирование на PHP 
    Классы и объекты
      Свойства объекта
      Методы
      Класс таблицы MySQL
    Доступ объекта к своим свойствам 
    Инициализация объекта. Конструкторы
    Деструктор
    Наследование 
    Полиморфизм
    Полноценный класс таблицы MySQL
    Копирование объектов 
      Ссылки и интерфейсы
      Возврат ссылки на объект
      Возврат интерфейса 

  Глава 32. Почтовые шаблоны
    Мини-шаблонизатор 
    Отправка и перекодирование писем 
    Пример

  Глава 33. Разные советы 
    Разделенные вычисления
    Использование самопереадресации
    Запрет кэширования страниц 
    Несколько слов о флажках checkbox

ЧАСТЬ VI. ПРИЛОЖЕНИЯ

    Приложение 1. Файл конфигурации Apache httpd.conf
    
    Приложение 2. Файл конфигурации PHP php.ini 
    
    Предметный указатель