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