Оглавление
Предисловие
Глава 1. Строки
1.0. Введение
1.1. Доступ к подстрокам
1.2. Замещение подстрок
1.3. Посимвольная обработка строк
1.4. Пословный или посимвольный переворот строки
1.5. Расширение и сжатие табуляций
1.6. Управление регистром
1.7. Включение функций и выражений в строки
1.8. Удаление пробельных символов из строки
1.9. Анализ данных, разделенных запятой
1.10. Анализ данных, состоящих из полей фиксированной ширины
1.11. Разбиение строк
1.12. Упаковка текста в строки определенной длины
1.13. Хранение двоичных данных в строках
Глава 2. Числа
2.0. Введение
2.1. Проверка правильности записи числа в строке
2.2. Сравнение чисел с плавающей точкой
2.3. Округление чисел с плавающей точкой
2.4. Работа с последовательностью целых чисел
2.5. Генерация случайных чисел в пределах диапазона
2.6. Генерация случайных чисел со смещением
2.7. Взятие логарифмов
2.8. Вычисление степеней
2.9. Форматирование чисел
2.10. Правильная печать слов во множественном числе
2.11. Вычисление тригонометрических функций
2.12. Тригонометрические вычисления не в радианах, а в градусах
2.13. Работа с очень большими и очень маленькими числами
2.14. Преобразование из одной системы счисления в другую
2.15. Вычисления с недесятичными числами
Глава 3. Дата и время
3.0. Введение
3.1. Определение текущей даты и времени
3.2. Преобразование времени и частей времени в метку времени UNIX
3.3. Преобразование метки времени в части времени и даты
3.4. Вывод на печать даты и времени в определенном формате
3.5. Определение разности между двумя датами
3.6. Определение разности между датами юлианского календаря
3.7. Определение дня недели, месяца, года или номера недели в году
3.8. Проверка корректности даты
3.9. Выделение дат и времен из строк
3.10. Сложение и вычитание дат
3.11. Учет часовых поясов при определении времени
3.12. Учет перехода на летнее время
3.13. Выработка высокоточного времени
3.14. Получение интервалов времени
3.15. Работа с негригорианскими календарями
3.16. Программа: Календарь
Глава 4. Массивы
4.0. Введение
4.1. Определение массива с ненулевым начальным индексом
4.2. Хранение множества элементов массива с одним ключом
4.3. Инициализация массива диапазоном целых чисел
4.4. Перебор элементов массива
4.5. Удаление элементов из массива
4.6. Изменение длины массива
4.7. Добавление одного массива к другому
4.8. Преобразование массива в строку
4.9. Печать массивов с запятыми
4.10. Проверка наличия ключа в массиве
4.11. Проверка наличия элемента в массиве
4.12. Определение позиции элемента в массиве
4.13. Нахождение элементов, удовлетворяющих определенному критерию
4.14. Нахождение элемента массива с наибольшим или наименьшим значением
4.15. Обращение массива
4.16. Сортировка массива
4.17. Сортировка массива по вычисляемому полю
4.18. Сортировка множества массивов
4.19. Сортировка массива с использованием метода вместо функции
4.20. Рандомизация массива
4.21. Тасование колоды карт
4.22. Удаление двойных элементов из массива
4.23. Определение объединения, пересечения или разности двух массивов
4.24. Определение всех комбинаций элементов массива
4.25. Нахождение всех перестановок массива
4.26. Программа: Печать массива в виде HTML-таблицы
Глава 5. Переменные
5.0. Введение
5.1. Операторы == и =: как избежать путаницы
5.2. Установка значения по умолчанию
5.3. Обмен значениями без временных переменных
5.4. Создание динамического имени переменной
5.5. Статические переменные
5.6. Совместное использование переменных процессами
5.7. Сериализация данных сложных типов в виде строки
5.8. Получение дампа содержимого переменных в виде строк
Глава 6. Функции
6.0. Введение
6.1. Доступ к параметрам функций
6.2. Установка значений по умолчанию для параметров функции
6.3. Передача значений по ссылке
6.4. Именованные параметры
6.5. Создание функции, принимающей переменное количество аргументов
6.6. Возвращение значений по ссылке
6.7. Возвращение более одного значения
6.8. Пропуск определенных возвращаемых значений
6.9. Возвращение информации об ошибке
6.10. Вызов переменных функций
6.11. Доступ к глобальной переменной внутри функции
6.12. Создание динамических функций
Глава 7. Классы и объекты
7.0. Введение
7.1. Реализация объектов
7.2. Определение конструкторов объектов
7.3. Уничтожение объекта
7.4. Клонирование объектов
7.5. Присваивание ссылок на объекты
7.6. Применение методов к объекту, возвращенному другим методом
7.7. Доступ к переопределенным методам
7.8. Перегрузка свойств
7.9. Полиморфизм методов
7.10. Обнаружение методов и свойств объекта
7.11. Добавление свойств в базовый объект
7.12. Динамическое создание класса
7.13. Динамическая реализация объекта
Глава 8. Основы Web
8.0. Введение
8.1. Установка cookies
8.2. Чтение значений cookie
8.3. Удаление cookies
8.4. Перенаправление по другому адресу
8.5. Отслеживание сеанса работы с сайтом
8.6. Хранение сеансов в базе данных
8.7. Идентификация различных броузеров
8.8. Формирование строки запроса GET
8.9. Применение базовой аутентификации HTTP
8.10. Аутентификация, основанная на cookies
8.11. Передача выходной информации в броузер
8.12. Буферизация вывода в броузер
8.13. Сжатие веб-вывода с помощью gzip
8.14. Сокрытие от пользователей сообщений об ошибках
8.15. Настройка обработки ошибок
8.16. Применение пользовательского обработчика ошибок
8.17. Регистрация ошибок
8.18. Устранение ошибок "headers already sent" (заголовки уже посланы)
8.19. Регистрация отладочной информации
8.20. Чтение переменных окружения
8.21. Установка переменных окружения
8.22. Чтение конфигурационных переменных
8.23. Установка конфигурационных переменных
8.24. Взаимодействие в рамках Apache
8.25. Профилирование программы
8.26. Программа: (Де)активатор учетной записи на веб-сайте
8.27. Программа: Контролер злоумышленных пользователей
Глава 9. Формы
9.0. Введение
9.1. Обработка информации, полученной из формы
9.2. Проверка корректности введенных в форму данных
9.3. Работа с многостраничными формами
9.4. Повторный вывод форм с информацией и сообщениями об ошибках
9.5. Защита от многократной отправки одной и той же формы
9.6. Обработка загруженных файлов
9.7. Организация безопасности обработки форм в PHP
9.8. Пользовательские данные и escape-последовательности
9.9. Обработка внешних переменных с точками в именах
9.10. Использование элементов формы с несколькими вариантами значений
9.11. Создание выпадающих меню на основе текущей даты
Глава 10. Доступ к базам данных
10.0. Введение
10.1. Работа с базами данных, состоящих из текстовых файлов
10.2. Работа с базами данных DBM
10.3. Соединение с базой данных SQL
10.4. Выполнение запросов к базе данных SQL
10.5. Извлечение строк без цикла
10.6. Модификация данных в базе данных SQL
10.7. Эффективное повторение запросов
10.8. Определение количества строк, возвращенных запросом
10.9. Преобразование кавычек в еscapе-последовательности
10.10. Регистрация отладочной информации и ошибок
10.11. Автоматическое присваивание уникальных значений идентификаторов
10.12. Программное создание запросов
10.13. Постраничный вывод большого количества записей
10.14. Кэширование запросов и результатов
10.15. Программа: Хранение сообщений форума, разбитых на темы
Глава 11. Автоматизация работы с Web
11.0. Введение
11.1. Получение содержимого URL методом GET
11.2. Извлечение содержимого URL с помощью метода POST
11.3. Получение содержимого URL, если требуется отправить cookies
11.4. Получение содержимого URL, требующее отправки заголовков
11.5. Получение содержимого HTTPS URL
11.6. Отладка обмена заголовками HTTP
11.7. Выделение информации на веб-странице
11.8. Извлечение ссылок из HTML-файла
11.9. Преобразование ASCII в HTML
11.10. Преобразование HTML в ASCII
11.11. Удаление тегов HTML и PHP
11.12. Использование шаблонов системы Smarty
11.13. Анализ файла протокола веб-сервера
11.14. Программа: обнаружение устаревших сылок
11.15. Программа: Обнаружение свежих ссылок
Глава 12. XML
12.0. Введение
12.1. Генерация XML вручную
12.2. Генерация XML с применением DOM
12.3. Анализ XML с помощью DOM
12.4. Анализ XML с помощью SAX
12.5. Преобразование XML с помощью XSLT
12.6. Посылка запросов XML-RPC
12.7. Прием запросов XML-RPC
12.8. Посылка SOAP-запросов
12.9. Прием SOAP-запросов
12.10. Обмен данными с помощью WDDX
12.11. Чтение RSS-рассылок
Глава 13. Регулярные выражения
13.0. Введение
13.1. Переход от ereg к preg
13.2. Поиск слов
13.3. Нахождение n-го совпадения
13.4. Выбор между поглощающим и непоглощающим сравнением
13.5. Проверка правильности адресов электронной почты
13.6. Поиск в файле всех строк, соответствующих шаблону
13.7. Сборка текста, заключенного в теги HTML
13.8. Экранирование специальных символов внутри регулярного выражения
13.9. Чтение записей с шаблоном-разделителем
Глава 14. Шифрование и безопасность
14.0. Введение
14.1. Не храните пароли на своем сайте
14.2. Сокрытие данных при помощи кодирования
14.3. Проверка данных с помощью хеширования
14.4. Хранение паролей
14.5. Проверка надежности пароля
14.6. Работа с потерянными паролями
14.7. Шифрование и дешифрование данных
14.8. Хранение зашифрованных данных в файле или базе данных
14.9. Совместное использование зашифрованных данных с другим веб-сайтом
14.10. Обнаружение SSL-соединения
14.11. Шифрование сообщений электронной почты с помощью GPG
Глава 15. Графика
15.0. Введение
15.1. Рисование линий, прямоугольников и многоугольников
15.2. Рисование дуг, эллипсов и окружностей
15.3. Рисование узорными линиями
15.4. Рисование текста
15.5. Рисование центрированного текста
15.6. Построение динамических изображений
15.7. Создание и установка прозрачного цвета
15.8. Безопасная работа с изображениями
15.9. Программа: создание гистограмм результатов голосования
Глава 16. Интернационализация и локализация
16.0. Введение
16.1. Перечень допустимых локалей
16.2. Использование определенной локали
16.3. Установка локали по умолчанию
16.4. Локализация текстовых сообщений
16.5. Локализация дат и времени
16.6. Локализация денежных значений
16.7. Локализация изображений
16.8. Локализация включаемых файлов
16.9. Управление ресурсами локализации
16.10. Расширение gettext
16.11. Чтение и запись символов Unicode
Глава 17. Интернет-службы
17.0. Введение
17.1. Отправка почты
17.2. Отправка почты в кодировке MIME
17.3. Чтение почты с помощью IMAP или POP3
17.4. Отправка сообщений в новостные группы Usenet
17.5. Чтение новостей из Usenet
17.6. Получение и размещение файлов с помощью FTP
17.7. Поиск адресов с помощью LDAP
17.8. Применение LDAP для аутентификации пользователей
17.9. Поиск в DNS
17.10. Проверка функционирования хоста
17.11. Получение информации о доменном имени
Глава 18. Файлы
18.0. Введение
18.1. Создание или открытие локального файла
18.2. Создание временного файла
18.3. Открытие удаленного файла
18.4. Чтение из стандартного потока ввода
18.5. Чтение файла в строку
18.6. Подсчет строк, абзацев или записей в файле
18.7. Обработка каждого слова в файле
18.8. Чтение определенной строки в файле
18.9. Обработка файла по строкам или абзацам в обратном направлении
18.10. Выбор случайной строки из файла
18.11. Рандомизация всех строк в файле
18.12. Обработка текстовых полей переменной длины
18.13. Чтение файлов конфигурации
18.14. Чтение или запись в определенное место в файле
18.15. Удаление из файла последней строки
18.16. Непосредственная модификация файла без временной копии
18.17. Сброс вывода в файл
18.18. Запись в стандартный поток вывода
18.19. Запись в несколько файловых дескрипторов одновременно
18.20. Преобразование метасимволов среды в escape-последовательности
18.21. Передача входной информации в программу
18.22. Чтение из стандартного потока вывода программы
18.23. Чтение из стандартного потока ошибок программы
18.24. Блокировка файла
18.25. Чтение и запись сжатых файлов
18.26. Программа: Unzip
Глава 19. Каталоги
19.0. Введение
19.1. Получение и установка меток даты/времени файла
19.2. Получение информации о файле
19.3. Изменение прав доступа к файлу или его владельца
19.4. Разделение имени файла на составляющие
19.5. Удаление файла
19.6. Копирование и перемещение файла
19.7. Обработка всех файлов в каталоге
19.8. Получение списка имен файлов, соответствующих шаблону
19.9. Обработка всех файлов в каталоге
19.10. Создание новых каталогов
19.11. Удаление каталога и его содержимого
19.12. Программа: Перечень каталогов веб-сервера
19.13. Программа: Поиск сайта
Глава 20. PHP на стороне клиента
20.0. Введение
20.1. Анализ аргументов программы
20.2. Анализ аргументов программы с помощью getopt
20.3. Чтение ввода с клавиатуры
20.4. Чтение паролей
20.5. Показ в окне графических элементов управления
20.6. Показ в окне нескольких графических элементов управления
20.7. Реакция на действия пользователя
20.8. Показ меню
20.9. Программа: Командная оболочка
20.10. Программа: Служба погоды
Глава 21. PEAR
21.0. Введение
21.1. Работа с менеджером пакетов PEAR
21.2. Нахождение пакетов PEAR
21.3. Поиск информации о пакете
21.4. Установка пакетов PEAR
21.5. Установка пакетов PECL
21.6. Обновление пакетов PEAR
21.7. Удаление пакетов PEAR
21.8. Документирование классов с помощью PHPDoc
Алфавитный указатель