Главная| Трекер ▼| Поиск| Правила| FAQ| |
Автор | Сообщение |
---|---|
valeri[µ]
Модератор ![]() Сообщения: 7870 ![]() |
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 Помоги нашему сайту на расходы за сервер и качай торренты НЕОГРАНИЧЕННО!Пожертвовать 100 ₽ ![]() Или 2204 1201 2214 8816, с комментарием "Помощь трекеру" Связь с администрацией |
Страница 1 из 1 |
![]() |
|