Регистрация ·  Логин: Пароль: Запомнить   · Забыли пароль?




Ответить на тему
Автор Сообщение

Модератор
Аватара пользователя

С нами: 11 лет
Сообщения: 7870
Молдова

Сообщение 11 янв 2016, 21:38 

[Цитировать]

PHP Cookbook / PHP Сборник рецептов


Год: 2005
Автор: Дэвид Скляр и Адам Трахтенберг
Переводчик: А. Петухов
Издательство: Символ-Плюс
ISBN: 5-93286-059-6
Язык: Русский
Формат: PDF
Качество: Изначально компьютерное (eBook)
Количество страниц: 672

Описание: «PHP. Сборник рецептов» Дэвида Скляра и Адама Трахтенберга содержит
практичеcкие примеры и решения разнообразных задач, ежедневно возникаю
щих перед программистами. Каждая задача снабжена проработанным решени
ем – «рецептом», содержащим небольшой фрагмент кода, который можно
вставлять прямо в приложение. Представлено более 250 рецептов – от самых
простых, таких как посылка запроса в базу данных и получение доступа к URL,
до полноценных программ, демонстрирующих более трудные задачи, напри
мер вывод HTMLтаблиц и создание диаграмм. Рассмотрена работа со строка
ми, числами, датами и временем, а также с массивами, файлами и каталогами.
Обсуждаются переменные, функции, классы и объекты, регулярные выраже
ния, шифрование и безопасность, интернетслужбы, графика, интернациона
лизация и локализация, PEAR, PHP в командной строке и PHPGTK, формы,
XML и доступ к базам данных.
Книга будет полезна всем, кто программирует на PHP, независимо от уровня
их подготовки – от новичков до опытных профессионалов.


Оглавление
Предисловие . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1. Строки . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.1. Доступ к подстрокам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.2. Замещение подстрок. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
1.3. Посимвольная обработка строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.4. Пословный или посимвольный переворот строки . . . . . . . . . . . . . . . . . . 30
1.5. Расширение и сжатие табуляций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.6. Управление регистром. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.7. Включение функций и выражений в строки . . . . . . . . . . . . . . . . . . . . . . . 34
1.8. Удаление пробельных символов из строки. . . . . . . . . . . . . . . . . . . . . . . . . 35
1.9. Анализ данных, разделенных запятой . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
1.10. Анализ данных, состоящих из полей фиксированной
ширины . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
1.11. Разбиение строк. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
1.12. Упаковка текста в строки определенной длины . . . . . . . . . . . . . . . . . . . 42
1.13. Хранение двоичных данных в строках . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2. Числа . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
2.1. Проверка правильности записи числа в строке. . . . . . . . . . . . . . . . . . . . . 48
2.2. Сравнение чисел с плавающей точкой. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
2.3. Округление чисел с плавающей точкой. . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.4. Работа с последовательностью целых чисел. . . . . . . . . . . . . . . . . . . . . . . . 51
2.5. Генерация случайных чисел в пределах диапазона . . . . . . . . . . . . . . . . . 52
2.6. Генерация случайных чисел со смещением . . . . . . . . . . . . . . . . . . . . . . . . 54
2.7. Взятие логарифмов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
2.8. Вычисление степеней . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
2.9. Форматирование чисел . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.10. Правильная печать слов во множественном числе. . . . . . . . . . . . . . . . . 57
2.11. Вычисление тригонометрических функций . . . . . . . . . . . . . . . . . . . . . . 59
2.12. Тригонометрические вычисления не в радианах,
а в градусах. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.13. Работа с очень большими и очень маленькими числами . . . . . . . . . . . 61
6 Оглавление
2.14. Преобразование из одной системы счисления в другую . . . . . . . . . . . . 62
2.15. Вычисления с недесятичными числами . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3. Дата и время. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.1. Определение текущей даты и времени. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.2. Преобразование времени и частей времени
в метку времени UNIX. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.3. Преобразование метки времени в части времени и даты . . . . . . . . . . . . 71
3.4. Вывод на печать даты и времени в определенном формате . . . . . . . . . . 72
3.5. Определение разности между двумя датами . . . . . . . . . . . . . . . . . . . . . . . 77
3.6. Определение разности между датами юлианского календаря. . . . . . . . 79
3.7. Определение дня недели, месяца, года или номера недели
в году . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.8. Проверка корректности даты. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.9. Выделение дат и времен из строк . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
3.10. Сложение и вычитание дат. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
3.11. Учет часовых поясов при определении времени . . . . . . . . . . . . . . . . . . . 88
3.12. Учет перехода на летнее время . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.13. Выработка высокоточного времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
3.14. Получение интервалов времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
3.15. Работа с негригорианскими календарями . . . . . . . . . . . . . . . . . . . . . . . . 96
3.16. Программа: Календарь . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4. Массивы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
4.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.1. Определение массива с ненулевым начальным индексом . . . . . . . . . .104
4.2. Хранение множества элементов массива с одним ключом. . . . . . . . . . 105
4.3. Инициализация массива диапазоном целых чисел . . . . . . . . . . . . . . . . 106
4.4. Перебор элементов массива . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107
4.5. Удаление элементов из массива. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
4.6. Изменение длины массива . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
4.7. Добавление одного массива к другому. . . . . . . . . . . . . . . . . . . . . . . . . . . .114
4.8. Преобразование массива в строку. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
4.9. Печать массивов с запятыми . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118
4.10. Проверка наличия ключа в массиве. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
4.11. Проверка наличия элемента в массиве . . . . . . . . . . . . . . . . . . . . . . . . . .119
4.12. Определение позиции элемента в массиве . . . . . . . . . . . . . . . . . . . . . . . 121
4.13. Нахождение элементов, удовлетворяющих
определенному критерию . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
4.14. Нахождение элемента массива с наибольшим
или наименьшим значением . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Оглавление 7
4.15. Обращение массива. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.16. Сортировка массива . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .125
4.17. Сортировка массива по вычисляемому полю. . . . . . . . . . . . . . . . . . . . . 126
4.18. Сортировка множества массивов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
4.19. Сортировка массива с использованием метода
вместо функции. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .130
4.20. Рандомизация массива . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
4.21. Тасование колоды карт . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
4.22. Удаление двойных элементов из массива . . . . . . . . . . . . . . . . . . . . . . . .133
4.23. Определение объединения, пересечения или разности
двух массивов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .134
4.24. Определение всех комбинаций элементов массива . . . . . . . . . . . . . . . 136
4.25. Нахождение всех перестановок массива. . . . . . . . . . . . . . . . . . . . . . . . . 139
4.26. Программа: Печать массива в виде HTMLтаблицы . . . . . . . . . . . . . .141
5. Переменные . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145
5.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
5.1. Операторы == и =: как избежать путаницы. . . . . . . . . . . . . . . . . . . . . . .146
5.2. Установка значения по умолчанию . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
5.3. Обмен значениями без временных переменных . . . . . . . . . . . . . . . . . . . 148
5.4. Создание динамического имени переменной . . . . . . . . . . . . . . . . . . . . . . 149
5.5. Статические переменные. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
5.6. Совместное использование переменных процессами. . . . . . . . . . . . . . . 152
5.7. Сериализация данных сложных типов в виде строки . . . . . . . . . . . . . .154
5.8. Получение дампа содержимого переменных в виде строк . . . . . . . . . .156
6. Функции. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
6.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
6.1. Доступ к параметрам функций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
6.2. Установка значений по умолчанию для параметров функции . . . . . .162
6.3. Передача значений по ссылке . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
6.4. Именованные параметры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
6.5. Создание функции, принимающей переменное
количество аргументов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167
6.6. Возвращение значений по ссылке. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
6.7. Возвращение более одного значения . . . . . . . . . . . . . . . . . . . . . . . . . . . . .170
6.8. Пропуск определенных возвращаемых значений. . . . . . . . . . . . . . . . . . 171
6.9. Возвращение информации об ошибке . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
6.10. Вызов переменных функций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
6.11. Доступ к глобальной переменной внутри функции . . . . . . . . . . . . . . . 175
6.12. Создание динамических функций . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
8 Оглавление
7. Классы и объекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
7.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
7.1. Реализация объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .182
7.2. Определение конструкторов объектов . . . . . . . . . . . . . . . . . . . . . . . . . . . .183
7.3. Уничтожение объекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
7.4. Клонирование объектов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
7.5. Присваивание ссылок на объекты . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
7.6. Применение методов к объекту, возвращенному
другим методом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
7.7. Доступ к переопределенным методам . . . . . . . . . . . . . . . . . . . . . . . . . . . .187
7.8. Перегрузка свойств. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
7.9. Полиморфизм методов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .190
7.10. Обнаружение методов и свойств объекта . . . . . . . . . . . . . . . . . . . . . . . . 192
7.11. Добавление свойств в базовый объект . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
7.12. Динамическое создание класса . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
7.13. Динамическая реализация объекта . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
8. Основы Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198
8.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
8.1. Установка cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
8.2. Чтение значений cookie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
8.3. Удаление cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .202
8.4. Перенаправление по другому адресу . . . . . . . . . . . . . . . . . . . . . . . . . . . . .203
8.5. Отслеживание сеанса работы с сайтом. . . . . . . . . . . . . . . . . . . . . . . . . . . .204
8.6. Хранение сеансов в базе данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205
8.7. Идентификация различных броузеров . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
8.8. Формирование строки запроса GET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
8.9. Применение базовой аутентификации HTTP . . . . . . . . . . . . . . . . . . . . .213
8.10. Аутентификация, основанная на cookies . . . . . . . . . . . . . . . . . . . . . . . . 216
8.11. Передача выходной информации в броузер . . . . . . . . . . . . . . . . . . . . . . 218
8.12. Буферизация вывода в броузер . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .219
8.13. Сжатие вебвывода с помощью gzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . .220
8.14. Сокрытие от пользователей сообщений об ошибках . . . . . . . . . . . . . .221
8.15. Настройка обработки ошибок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
8.16. Применение пользовательского обработчика ошибок . . . . . . . . . . . . 225
8.17. Регистрация ошибок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226
8.18. Устранение ошибок «headers already sent»
(заголовки уже посланы) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
8.19. Регистрация отладочной информации . . . . . . . . . . . . . . . . . . . . . . . . . .229
8.20. Чтение переменных окружения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231
8.21. Установка переменных окружения . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232
Оглавление 9
8.22. Чтение конфигурационных переменных . . . . . . . . . . . . . . . . . . . . . . . . 233
8.23. Установка конфигурационных переменных . . . . . . . . . . . . . . . . . . . . .235
8.24. Взаимодействие в рамках Apache . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235
8.25. Профилирование программы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .237
8.26. Программа: (Де)активатор учетной записи на вебсайте . . . . . . . . . .240
8.27. Программа: Контролер злоумышленных пользователей . . . . . . . . . . 242
9. Формы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
9.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249
9.1. Обработка информации, полученной из формы . . . . . . . . . . . . . . . . . . . 251
9.2. Проверка корректности введенных в форму данных. . . . . . . . . . . . . . . 253
9.3. Работа с многостраничными формами. . . . . . . . . . . . . . . . . . . . . . . . . . . .255
9.4. Повторный вывод форм с информацией и сообщениями
об ошибках . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258
9.5. Защита от многократной отправки одной и той же формы . . . . . . . . . 261
9.6. Обработка загруженных файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263
9.7. Организация безопасности обработки форм в PHP . . . . . . . . . . . . . . . . 265
9.8. Пользовательские данные и escapeпоследовательности . . . . . . . . . . .267
9.9. Обработка внешних переменных с точками в именах . . . . . . . . . . . . . . 268
9.10. Использование элементов формы с несколькими
вариантами значений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .270
9.11. Создание выпадающих меню на основе текущей даты . . . . . . . . . . . . 271
10. Доступ к базам данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273
10.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273
10.1. Работа с базами данных, состоящих из текстовых файлов . . . . . . . . 279
10.2. Работа с базами данных DBM. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280
10.3. Соединение с базой данных SQL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284
10.4. Выполнение запросов к базе данных SQL. . . . . . . . . . . . . . . . . . . . . . . .286
10.5. Извлечение строк без цикла. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
10.6. Модификация данных в базе данных SQL . . . . . . . . . . . . . . . . . . . . . . . 291
10.7. Эффективное повторение запросов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
10.8. Определение количества строк, возвращенных запросом . . . . . . . . . 294
10.9. Преобразование кавычек в еscapепоследовательности . . . . . . . . . . .295
10.10. Регистрация отладочной информации и ошибок . . . . . . . . . . . . . . . .297
10.11. Автоматическое присваивание уникальных значений
идентификаторов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300
10.12. Программное создание запросов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301
10.13. Постраничный вывод большого количества записей . . . . . . . . . . . . 305
10.14. Кэширование запросов и результатов . . . . . . . . . . . . . . . . . . . . . . . . . .310
10.15. Программа: Хранение сообщений форума, разбитых
на темы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
10 Оглавление
11. Автоматизация работы с Web . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .320
11.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320
11.1. Получение содержимого URL методом GET . . . . . . . . . . . . . . . . . . . . .322
11.2. Извлечение содержимого URL с помощью метода POST . . . . . . . . . .324
11.3. Получение содержимого URL, если требуется
отправить cookies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326
11.4. Получение содержимого URL, требующее отправки
заголовков. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328
11.5. Получение содержимого HTTPS URL . . . . . . . . . . . . . . . . . . . . . . . . . . . 329
11.6. Отладка обмена заголовками HTTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330
11.7. Выделение информации на вебстранице . . . . . . . . . . . . . . . . . . . . . . . .333
11.8. Извлечение ссылок из HTMLфайла . . . . . . . . . . . . . . . . . . . . . . . . . . . .334
11.9. Преобразование ASCII в HTML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336
11.10. Преобразование HTML в ASCII . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337
11.11. Удаление тегов HTML и PHP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338
11.12. Использование шаблонов системы Smarty. . . . . . . . . . . . . . . . . . . . . . 339
11.13. Анализ файла протокола вебсервера . . . . . . . . . . . . . . . . . . . . . . . . . .341
11.14. Программа: обнаружение устаревших сылок . . . . . . . . . . . . . . . . . . .343
11.15. Программа: Обнаружение свежих ссылок . . . . . . . . . . . . . . . . . . . . . . 345
12. XML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .349
12.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 349
12.1. Генерация XML вручную . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352
12.2. Генерация XML с применением DOM . . . . . . . . . . . . . . . . . . . . . . . . . . . 354
12.3. Анализ XML с помощью DOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
12.4. Анализ XML с помощью SAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
12.5. Преобразование XML с помощью XSLT . . . . . . . . . . . . . . . . . . . . . . . . .366
12.6. Посылка запросов XMLRPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
12.7. Прием запросов XMLRPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .372
12.8. Посылка SOAPзапросов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .376
12.9. Прием SOAPзапросов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .379
12.10. Обмен данными с помощью WDDX . . . . . . . . . . . . . . . . . . . . . . . . . . . .382
12.11. Чтение RSSрассылок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .384
13. Регулярные выражения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .387
13.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387
13.1. Переход от ereg к preg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .391
13.2. Поиск слов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .393
13.3. Нахождение nго совпадения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .394
13.4. Выбор между поглощающим и непоглощающим сравнением . . . . . 395
13.5. Проверка правильности адресов электронной почты . . . . . . . . . . . . .398
Оглавление 11
13.6. Поиск в файле всех строк, соответствующих шаблону . . . . . . . . . . . .401
13.7. Сборка текста, заключенного в теги HTML . . . . . . . . . . . . . . . . . . . . . .402
13.8. Экранирование специальных символов внутри
регулярного выражения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .404
13.9. Чтение записей с шаблономразделителем . . . . . . . . . . . . . . . . . . . . . .405
14. Шифрование и безопасность . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
14.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 407
14.1. Не храните пароли на своем сайте . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409
14.2. Сокрытие данных при помощи кодирования . . . . . . . . . . . . . . . . . . . . 410
14.3. Проверка данных с помощью хеширования . . . . . . . . . . . . . . . . . . . . .410
14.4. Хранение паролей. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 412
14.5. Проверка надежности пароля . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
14.6. Работа с потерянными паролями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
14.7. Шифрование и дешифрование данных . . . . . . . . . . . . . . . . . . . . . . . . . .417
14.8. Хранение зашифрованных данных в файле или базе данных. . . . . . 423
14.9. Совместное использование зашифрованных данных
с другим вебсайтом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .426
14.10. Обнаружение SSLсоединения. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 428
14.11. Шифрование сообщений электронной почты
с помощью GPG. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .429
15. Графика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
15.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 432
15.1. Рисование линий, прямоугольников и многоугольников . . . . . . . . . 436
15.2. Рисование дуг, эллипсов и окружностей . . . . . . . . . . . . . . . . . . . . . . . . 438
15.3. Рисование узорными линиями . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .440
15.4. Рисование текста. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .441
15.5. Рисование центрированного текста . . . . . . . . . . . . . . . . . . . . . . . . . . . . .444
15.6. Построение динамических изображений . . . . . . . . . . . . . . . . . . . . . . . . 449
15.7. Создание и установка прозрачного цвета . . . . . . . . . . . . . . . . . . . . . . . . 451
15.8. Безопасная работа с изображениями. . . . . . . . . . . . . . . . . . . . . . . . . . . .452
15.9. Программа: создание гистограмм результатов голосования . . . . . . . 454
16. Интернационализация и локализация. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
16.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458
16.1. Перечень допустимых локалей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .460
16.2. Использование определенной локали . . . . . . . . . . . . . . . . . . . . . . . . . . . 460
16.3. Установка локали по умолчанию . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461
16.4. Локализация текстовых сообщений . . . . . . . . . . . . . . . . . . . . . . . . . . . .462
16.5. Локализация дат и времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
16.6. Локализация денежных значений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467
12 Оглавление
16.7. Локализация изображений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .470
16.8. Локализация включаемых файлов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 471
16.9. Управление ресурсами локализации. . . . . . . . . . . . . . . . . . . . . . . . . . . .472
16.10. Расширение gettext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 474
16.11. Чтение и запись символов Unicode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475
17. Интернетслужбы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
17.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 477
17.1. Отправка почты. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .478
17.2. Отправка почты в кодировке MIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 481
17.3. Чтение почты с помощью IMAP или POP3. . . . . . . . . . . . . . . . . . . . . . .483
17.4. Отправка сообщений в новостные группы Usenet . . . . . . . . . . . . . . . . 486
17.5. Чтение новостей из Usenet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .489
17.6. Получение и размещение файлов с помощью FTP . . . . . . . . . . . . . . . .494
17.7. Поиск адресов с помощью LDAP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 497
17.8. Применение LDAP для аутентификации пользователей . . . . . . . . . .499
17.9. Поиск в DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .502
17.10. Проверка функционирования хоста . . . . . . . . . . . . . . . . . . . . . . . . . . . 503
17.11. Получение информации о доменном имени. . . . . . . . . . . . . . . . . . . . . 505
18. Файлы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
18.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 507
18.1. Создание или открытие локального файла . . . . . . . . . . . . . . . . . . . . . .511
18.2. Создание временного файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 513
18.3. Открытие удаленного файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 514
18.4. Чтение из стандартного потока ввода . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
18.5. Чтение файла в строку. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515
18.6. Подсчет строк, абзацев или записей в файле . . . . . . . . . . . . . . . . . . . . . 517
18.7. Обработка каждого слова в файле. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .519
18.8. Чтение определенной строки в файле . . . . . . . . . . . . . . . . . . . . . . . . . . . 521
18.9. Обработка файла по строкам или абзацам
в обратном направлении . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .522
18.10. Выбор случайной строки из файла. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 522
18.11. Рандомизация всех строк в файле . . . . . . . . . . . . . . . . . . . . . . . . . . . . .523
18.12. Обработка текстовых полей переменной длины. . . . . . . . . . . . . . . . . 524
18.13. Чтение файлов конфигурации. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525
18.14. Чтение или запись в определенное место в файле . . . . . . . . . . . . . . . 528
18.15. Удаление из файла последней строки . . . . . . . . . . . . . . . . . . . . . . . . . .529
18.16. Непосредственная модификация файла
без временной копии . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .531
18.17. Сброс вывода в файл. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .532
18.18. Запись в стандартный поток вывода . . . . . . . . . . . . . . . . . . . . . . . . . . . 533
Оглавление 13
18.19. Запись в несколько файловых дескрипторов одновременно . . . . . . 534
18.20. Преобразование метасимволов среды
в escapeпоследовательности . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535
18.21. Передача входной информации в программу . . . . . . . . . . . . . . . . . . . 537
18.22. Чтение из стандартного потока вывода программы . . . . . . . . . . . . .537
18.23. Чтение из стандартного потока ошибок программы . . . . . . . . . . . . .539
18.24. Блокировка файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .540
18.25. Чтение и запись сжатых файлов. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .543
18.26. Программа: Unzip. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
19. Каталоги . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .547
19.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
19.1. Получение и установка меток даты/времени файла . . . . . . . . . . . . . .550
19.2. Получение информации о файле. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551
19.3. Изменение прав доступа к файлу или его владельца. . . . . . . . . . . . . . 553
19.4. Разделение имени файла на составляющие . . . . . . . . . . . . . . . . . . . . . . 554
19.5. Удаление файла. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .556
19.6. Копирование и перемещение файла. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
19.7. Обработка всех файлов в каталоге . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
19.8. Получение списка имен файлов, соответствующих
шаблону. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .558
19.9. Обработка всех файлов в каталоге . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559
19.10. Создание новых каталогов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .561
19.11. Удаление каталога и его содержимого . . . . . . . . . . . . . . . . . . . . . . . . .563
19.12. Программа: Перечень каталогов вебсервера . . . . . . . . . . . . . . . . . . . 564
19.13. Программа: Поиск сайта. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .568
20. PHP на стороне клиента. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
20.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 572
20.1. Анализ аргументов программы. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 577
20.2. Анализ аргументов программы с помощью getopt. . . . . . . . . . . . . . . .578
20.3. Чтение ввода с клавиатуры . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .582
20.4. Чтение паролей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .583
20.5. Показ в окне графических элементов управления. . . . . . . . . . . . . . . .586
20.6. Показ в окне нескольких графических элементов
управления. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
20.7. Реакция на действия пользователя . . . . . . . . . . . . . . . . . . . . . . . . . . . . .590
20.8. Показ меню. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592
20.9. Программа: Командная оболочка. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .595
20.10. Программа: Служба погоды. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .598
14 Оглавление
21. PEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .607
21.0. Введение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 607
21.1. Работа с менеджером пакетов PEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . .610
21.2. Нахождение пакетов PEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .612
21.3. Поиск информации о пакете . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613
21.4. Установка пакетов PEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 615
21.5. Установка пакетов PECL. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .616
21.6. Обновление пакетов PEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .618
21.7. Удаление пакетов PEAR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 619
21.8. Документирование классов с помощью PHPDoc . . . . . . . . . . . . . . . . .620
Алфавитный указатель . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 623
Download
Для скачивания .torrent файлов необходима регистрация
Сайт не распространяет и не хранит электронные версии произведений, а лишь предоставляет доступ к создаваемому пользователями каталогу ссылок на торрент-файлы, которые содержат только списки хеш-сумм

Страница 1 из 1

Ответить на тему

   Похожие торренты   Торрент