PHP. Рецепты программирования

Дэвид Скляр, Адам Трахтенберг

Третье издание этой популярной книги представляет собой подборку готовых решений наиболее распространенных задач на языке РНР. Изложен материал, интересный каждому разработчику: базовые типы данных, операции с ними, файлы cookie, функции РНР, аутентификация пользователей, работа со слоями, проблемы безопасности, ускорение действия программ, работа в сети, создание графических изображений, обработка ошибок, отладка сценариев и написание тестов. Даны рецепты, затрагивающие основы объектно-ориентированного программирования и новые функциональные возможности РНР. Каждый рецепт является самодостаточным и показывает весь путь решения задачи.

Третье издание книги полностью обновлено под версию PHP 5.4, а также включает ряд новых разделов по работе с данными.

Издательство: Питер, Серия: Бестселлеры O'Reilly, 2015 г.

ISBN 978-5-496-01592-9, 978-5-9775-0076-0, 978-5-7502-0318-5, 978-0-596-10101-5

Количество страниц: 784.

Содержание книги «PHP. Рецепты программирования»:

  • 18 Предисловие
    • 18 Для кого предназначена эта книга
    • 19 О чем говорится в книге
    • 21 Другие ресурсы
    • 22 Благодарности
  • 24 Глава 1. Строки
    • 24 1.0. Введение
    • 28 1.1. Обращение к подстрокам
    • 29 1.2. Выделение подстрок
    • 31 1.3. Замена подстрок
    • 32 1.4. Обработка строки по одному байту
    • 34 1.5. Обратная перестановка строки по словам или байтам
    • 35 1.6. Генерирование случайной строки
    • 35 1.7. Сжатие и свертка табуляций
    • 38 1.8. Управление регистром символов
    • 39 1.9. Интерполяция функций и выражений в строках
    • 41 1.10. Удаление начальных или конечных пропусков в строке
    • 42 1.11. Генерирование данных, разделенных запятыми
    • 44 1.12. Разбор данных, разделенных запятыми
    • 45 1.13. Генерирование записей с полями фиксированной длины
    • 46 1.14. Разбор данных с полями фиксированной длины
    • 49 1.15. Разбиение строк на фрагменты
    • 51 1.16. Перенос текста по заданной длине строки
    • 52 1.17. Хранение двоичных данных в строках
    • 55 1.18. Программа: загрузка файла в формате CSV
  • 58 Глава 2. Числа
    • 58 2.0. Введение
    • 59 2.1. Проверка значения переменной
    • 60 2.2. Сравнение чисел с плавающей точкой
    • 61 2.3. Округление чисел с плавающей точкой
    • 63 2.4. Работа с последовательностями целых чисел
    • 65 2.5. Генерирование случайных чисел в заданном диапазоне
    • 66 2.6. Генерирование предсказуемых случайных чисел
    • 67 2.7. Генерирование случайных чисел с неравномерным распределением
    • 69 2.8. Вычисление логарифмов
    • 70 2.9. Вычисление экспоненты
    • 71 2.10. Форматирование чисел
    • 72 2.11. Форматирование денежных сумм
    • 73 2.12. Вывод формы множественного числа
    • 75 2.13. Вычисление тригонометрических функций
    • 76 2.14. Выполнение тригонометрических операций в градусах
    • 77 2.15. Работа с очень большими или очень малыми числами
    • 79 2.16. Преобразование между системами счисления
    • 80 2.17. Математические операции в других системах счисления
    • 82 2.18. Определение расстояния между двумя географическими точками
  • 84 Глава 3. Дата и время
    • 84 3.0. Введение
    • 86 3.1. Определение текущей даты и времени
    • 89 3.2. Преобразование компонентов времени и даты во временную метку
    • 91 3.3. Преобразование временной метки в компоненты времени и даты
    • 92 3.4. Вывод даты или времени в заданном формате
    • 95 3.5. Вычисление разности двух дат
    • 97 3.6. Определение дня недели, месяца или года
    • 99 3.7. Проверка существования введенной даты
    • 101 3.8. Разбор строк даты и времени
    • 103 3.9. Операции сложения и вычитания с датами
    • 105 3.10. Вычисление времени с учетом часовых поясов и летнего времени
    • 106 3.11. Получение времени с высокой точностью
    • 108 3.12. Генерирование временных диапазонов
    • 109 3.13. Использование негригорианских календарей
    • 112 3.14. Программа: календарь
  • 117 Глава 4. Массивы
    • 117 4.0. Введение
    • 120 4.1. Определение массивов с начальным индексом, отличным от 0
    • 122 4.2. Хранение нескольких элементов для каждого ключа
    • 123 4.3. Инициализация массива диапазоном целых чисел
    • 124 4.4. Перебор элементов массива
    • 126 4.5. Удаление элементов из массива
    • 128 4.6. Изменение размера массива
    • 130 4.7. Слияние массивов
    • 132 4.8. Преобразование массива в строку
    • 134 4.9. Вывод массива с разделением запятыми
    • 135 4.10. Проверка присутствия ключа в массиве
    • 136 4.11. Проверка присутствия элемента в массиве
    • 137 4.12. Определение позиции значения в массиве
    • 138 4.13. Поиск элементов, удовлетворяющих некоторому условию
    • 140 4.14. Поиск элемента с наибольшим или наименьшим значением
    • 141 4.15. Перестановка в обратном порядке
    • 142 4.16. Сортировка массива
    • 143 4.17. Сортировка массива по вычисляемому полю
    • 145 4.18. Сортировка нескольких массивов
    • 147 4.19. Сортировка массива с использованием метода вместо функции
    • 148 4.20. Случайная перестановка
    • 149 4.21. Удаление дубликатов из массива
    • 150 4.22. Применение функции к каждому элементу массива
    • 152 4.23. Вычисление объединения, пересечения и разности двух массивов
    • 154 4.24. Эффективный перебор больших или высокозатратных наборов данных
    • 156 4.25. Работа с объектом в синтаксисе массива
  • 159 Глава 5. Переменные
    • 159 5.0. Введение
    • 161 5.1. Предотвращение путаницы между == и =
    • 162 5.2. Определение значения по умолчанию
    • 163 5.3. Переключение значений без использования временных переменных
    • 164 5.4. Динамическое создание имени переменной
    • 166 5.5. Сохранение значения локальной переменной между вызовами функции
    • 167 5.6. Совместный доступ к переменным между процессами
    • 174 5.7. Строковое представление сложных типов данных
    • 176 5.8. Вывод содержимого переменной в строковом виде
  • 180 Глава 6. Функции
    • 180 6.0. Введение
    • 181 6.1. Обращение к параметрам функции
    • 182 6.2. Определение значений по умолчанию для параметров функции
    • 184 6.3. Передача по ссылке
    • 185 6.4. Именованные параметры
    • 186 6.5. Контроль типа аргументов
    • 187 6.6. Создание функций с переменным количеством аргументов
    • 190 6.7. Возвращение значений по ссылке
    • 192 6.8. Возвращение нескольких значений из функции
    • 194 6.9. Пропуск отдельных возвращаемых значений
    • 195 6.10. Возвращение признака ошибки
    • 196 6.11. Вызов разных функций в зависимости от значения переменной
    • 198 6.12. Обращение к глобальной переменной внутри функции
    • 200 6.13. Создание динамических функций
  • 202 Глава 7. Классы и объекты
    • 202 7.0. Введение
    • 206 7.1. Создание объектов
    • 207 7.2. Определение конструкторов
    • 208 7.3. Определение деструкторов объектов
    • 209 7.4. Управление доступом
    • 212 7.5. Запрет на изменение классов и методов
    • 213 7.6. Определение строкового представления объекта
    • 215 7.7. Результат сходного поведения в разных классах
    • 218 7.8. Создание абстрактных базовых классов
    • 221 7.9. Присваивание ссылок на объекты
    • 221 7.10. Клонирование объектов
    • 224 7.11. Переопределение обращений к свойствам
    • 228 7.12. Вызов методов объекта, возвращаемого другим методом
    • 230 7.13. Композиция объектов
    • 233 7.14. Обращение к переопределенным методам
    • 235 7.15. Динамическое создание методов
    • 236 7.16. Полиморфизм методов
    • 238 7.17. Определение констант класса
    • 240 7.18. Определение статических методов и свойств
    • 243 7.19. Управление сериализацией объектов
    • 245 7.20. Интроспекция
    • 249 7.21. Проверка объекта на принадлежность к определенному классу
    • 251 7.22. Автоматическая загрузка файлов классов при создании объекта
    • 253 7.23. Динамическое создание объекта
    • 254 7.24. Программа: whereis
  • 256 Глава 8. Основы веб-программирования
    • 256 8.0. Введение
    • 257 8.1. Запись cookie
    • 259 8.2. Чтение cookie
    • 260 8.3. Удаление cookie
    • 260 8.4. Построение строки запроса
    • 262 8.5. Чтение тела запроса POST
    • 262 8.6. Использование аутентификации HTTP
    • 267 8.7. Аутентификация с использованием cookie
    • 269 8.8. Чтение заголовка HTTP
    • 271 8.9. Запись заголовка HTTP
    • 272 8.10. Отправка конкретного кода статуса HTTP
    • 273 8.11. Перенаправление запросов
    • 274 8.12. Принудительная отправка вывода браузеру
    • 275 8.13. Буферизация вывода
    • 277 8.14. Сжатие вывода
    • 277 8.15. Чтение переменных окружения
    • 278 8.16. Запись переменных окружения
    • 280 8.17. Взаимодействие с Apache
    • 281 8.18. Перенаправление мобильных браузеров
    • 282 8.19. Программа: (де)активизация учетных записей
    • 284 8.20. Программа: Tiny Wiki
    • 287 8.21. Программа: HTTP Range
  • 296 Глава 9. Формы
    • 296 9.0. Введение
    • 298 9.1. Обработка ввода
    • 300 9.2. Проверка ввода на форме: обязательные поля
    • 302 9.3. Проверка ввода на форме: числа
    • 304 9.4. Проверка ввода на форме: адреса электронной почты
    • 305 9.5. Проверка ввода на форме: раскрывающиеся меню
    • 307 9.6. Проверка ввода на форме: переключатели
    • 308 9.7. Проверка ввода на форме: флажки
    • 310 9.8. Проверка ввода на форме: дата и время
    • 311 9.9. Проверка ввода на форме: кредитные карты
    • 312 9.10. Предотвращение межсайтовых сценарных атак
    • 314 9.11. Обработка отправленных файлов
    • 316 9.12. Работа с многостраничными формами
    • 318 9.13. Повторное отображение форм со встроенными сообщениями об ошибках
    • 320 9.14. Защита от повторной отправки одной формы
    • 322 9.15. Предотвращение внедрения глобальных переменных
    • 324 9.16. Работа с переменными, имена которых содержат точки
    • 325 9.17. Использование элементов форм с множественным выбором
    • 326 9.18. Создание раскрывающихся меню на основании текущей даты
  • 328 Глава 10. Базы данных
    • 328 10.0. Введение
    • 331 10.1. Использование баз данных DBM
    • 334 10.2. Использование базы данных SQLite
    • 336 10.3. Подключение к базе данных SQL
    • 338 10.4. Запрос к базе данных SQL
    • 341 10.5. Выборка строк данных без цикла
    • 341 10.6. Модификация данных в базах данных SQL
    • 343 10.7. Эффективное повторение запросов
    • 346 10.8. Получение количества строк данных, возвращаемых запросом
    • 347 10.9. Экранирование в запросах
    • 348 10.10. Работа с журналом отладочной информации и сообщений об ошибках
    • 350 10.11. Создание уникальных идентификаторов
    • 352 10.12. Программное построение запросов
    • 357 10.13. Создание страничных ссылок на серии записей
    • 360 10.14. Кэширование запросов и результатов
    • 362 10.15. Использование подключения к базе данных в любой точке программы
    • 364 10.16. Программа: база данных сообщений интернет-форума
    • 371 10.17. Использование Redis
  • 373 Глава 11. Сеансы и долгосрочное хранение данных
    • 373 11.0. Введение
    • 374 11.1. Отслеживание сеанса
    • 376 11.2. Предотвращение перехвата сеанса
    • 377 11.3. Предотвращение фиксации сеанса
    • 378 11.4. Хранение сеансовых данных в Memcached
    • 379 11.5. Хранение сеансовых данных в базе данных
    • 382 11.6. Хранение произвольных данных в общей памяти
    • 385 11.7. Кэширование вычисленных результатов в сводных таблицах
  • 388 Глава 12. XML
    • 388 12.0. Введение
    • 391 12.1. Генерирование XML в строковом формате
    • 393 12.2. Генерирование XML с использованием DOM
    • 395 12.3. Разбор базовых документов XML
    • 398 12.4. Разбор сложных документов XML
    • 400 12.5. Разбор больших документов XML
    • 406 12.6. Извлечение информации с использованием XPath
    • 409 12.7. Преобразование XML с использованием XSLT
    • 411 12.8. Настройка параметров XSLT из PHP
    • 413 12.9. Вызов функций PHP из таблиц стилей XSLT
    • 417 12.10. Проверка действительности документов XML
    • 419 12.11. Преобразование кодировки контента
    • 420 12.12. Чтение каналов RSS и Atom
    • 423 12.13. Генерирование каналов RSS
    • 426 12.14. Генерирование каналов Atom
  • 430 Глава 13. Автоматизация в веб-приложениях
    • 431 13.1. Пометки в веб-страницах
    • 433 13.2. Удаление некорректной или нестандартной разметки HTML
    • 436 13.3. Извлечение ссылок из файлов HTML
    • 439 13.4. Преобразование простого текста в HTML
    • 440 13.5. Преобразование HTML в простой текст
    • 441 13.6. Удаление тегов HTML и PHP
    • 444 13.7. Обработка запросов Ajax
    • 446 13.8. Интеграция с JavaScript
    • 449 13.9. Программа: поиск устаревших ссылок
    • 452 13.10. Программа: проверка актуальности ссылок
  • 455 Глава 14. Потребление REST-совместимых API
    • 455 14.0. Введение
    • 457 14.1. Получение данных по URL-адресу методом GET
    • 460 14.2. Обращение по URL-адресу с методом POST и данными формы
    • 462 14.3. Обращение по URL-адресу с произвольным методом и телом POST
    • 464 14.4. Обращение по URL-адресу с cookie
    • 466 14.5. Обращение по URL-адресу с произвольными заголовками
    • 467 14.6. Обращение по URL-адресу с тайм-аутом
    • 469 14.7. Обращение по URL-адресу по протоколу HTTPS
    • 470 14.8. Отладка низкоуровневой передачи данных HTTP
    • 475 14.9. Выдача запросов OAuth 1.0
    • 476 14.10. Выдача запросов OAuth 2.0
  • 480 Глава 15. Предоставление доступа к REST-совместимым API
    • 480 15.0. Введение
    • 483 15.1. Предоставление доступа к ресурсу и обработка запроса
    • 486 15.2. Использование «чистых» путей для доступа к ресурсам
    • 487 15.3. Предоставление доступа к ресурсу для чтения
    • 490 15.4. Создание ресурса
    • 494 15.5. Редактирование ресурса
    • 496 15.6. Удаление ресурса
    • 497 15.7. Сообщения об ошибках и сбоях
    • 499 15.8. Поддержка нескольких форматов
  • 503 Глава 16. Сервисы Интернета
    • 503 16.0. Введение
    • 504 16.1. Отправка почты
    • 506 16.2. Отправка почты с контентом MIME
    • 507 16.3. Чтение почты с использованием протокола IMAP или POP3
    • 512 16.4. Получение и отправка файлов с использованием протокола FTP
    • 514 16.5. Поиск адресов с использованием LDAP
    • 516 16.6. Использование сервера LDAP для аутентификации пользователей
    • 519 16.7. Выполнение поиска DNS
    • 521 16.8. Проверка доступности хоста
    • 522 16.9. Получение информации о доменном имени
  • 525 Глава 17. Графика
    • 525 17.0. Введение
    • 529 17.1. Рисование линий, прямоугольников и многоугольников
    • 531 17.2. Рисование дуг, эллипсов и кругов
    • 533 17.3. Рисование узорных линий
    • 534 17.4. Вывод текста
    • 536 17.5. Выравнивание текста по центру
    • 540 17.6. Построение динамических изображений
    • 542 17.7. Назначение и получение цвета прозрачности
    • 543 17.8. Наложение водяных знаков
    • 546 17.9. Создание миниатюр
    • 549 17.10. Чтение данных EXIF
    • 551 17.11. Защита изображений
    • 553 17.12. Программа: генерирование гистограммы по результатам опроса
  • 557 Глава 18. Безопасность и шифрование
    • 557 18.0. Введение
    • 558 18.1. Предотвращение фиксации сеанса
    • 560 18.2. Защита от фальсификации форм
    • 561 18.3. Обеспечение фильтрации входных данных
    • 562 18.4. Предотвращение межсайтовых сценарных атак
    • 563 18.5. Предотвращение внедрения SQL
    • 563 18.6. Хранение паролей отдельно от файлов
    • 564 18.7. Хранение паролей
    • 568 18.8. Восстановление утраченных паролей
    • 570 18.9. Проверка данных с использованием хешей
    • 571 18.10. Шифрование и дешифрование данных
    • 574 18.11. Хранение шифрованных данных в файле или в базе данных
    • 577 18.12. Обмен зашифрованными данными с другим сайтом
    • 579 18.13. Обнаружение SSL
    • 580 18.14. Шифрование электронной почты и GPG
  • 583 Глава 19. Интернационализация и локализация
    • 583 19.0. Введение
    • 585 19.1. Определение локального контекста пользователя
    • 586 19.2. Локализация текстовых сообщений
    • 589 19.3. Локализация даты и времени
    • 593 19.4. Локализация числовых данных
    • 596 19.5. Локализация денежных сумм
    • 598 19.6. Локализация графики
    • 599 19.7. Локализация включаемых файлов
    • 600 19.8. Сортировка с учетом локального контекста
    • 601 19.9. Управление ресурсами локализации
    • 603 19.10. Выбор кодировки символов для выходных данных
    • 604 19.11. Назначение кодировки символов для входных данных
    • 605 19.12. Работа с текстом в кодировке UTF-8
  • 610 Глава 20. Обработка ошибок
    • 610 20.0. Введение
    • 611 20.1. Поиск и исправление ошибок разбора
    • 613 20.2. Создание классов исключений
    • 616 20.3. Вывод трассировки стека
    • 619 20.4. Чтение конфигурационных переменных
    • 621 20.5. Присваивание значений конфигурационным переменным
    • 621 20.6. Сокрытие сообщений об ошибках от пользователей
    • 623 20.7. Настройка обработки ошибок
    • 626 20.8. Применение пользовательских обработчиков ошибок
    • 627 20.9. Регистрация ошибок
    • 628 20.10. Устранение ошибок «заголовки уже отправлены»
    • 630 20.11. Сохранение отладочной информации
  • 633 Глава 21. Технология программирования
    • 633 21.0. Введение
    • 633 21.1. Использование отладочного расширения
    • 636 21.2. Написание модульного теста
    • 638 21.3. Написание пакета модульных тестов
    • 640 21.4. Применение модульного теста к веб-странице
    • 642 21.5. Настройка среды тестирования
    • 643 21.6. Использование встроенного веб-сервера
  • 646 Глава 22. Оптимизация
    • 646 22.0. Введение
    • 647 22.1. Использование акселератора
    • 648 22.2. Хронометраж выполнения функций
    • 650 22.3. Хронометраж функций
    • 651 22.4. Хронометраж по командам
    • 653 22.5. Хронометраж по секциям
    • 655 22.6. Профилирование с отладочным расширением
    • 659 22.7. Нагрузочное тестирование сайта
    • 660 22.8. Альтернативы для регулярных выражений
  • 663 Глава 23. Регулярные выражения
    • 663 23.0. Введение
    • 667 23.1. Переход с ereg на preg
    • 669 23.2. Поиск слов
    • 670 23.3. Поиск n-го совпадения
    • 672 23.4. Выбор между максимальным и минимальным совпадением
    • 674 23.5. Поиск в файле всех строк, соответствующих шаблону
    • 675 23.6. Выделение текста из тегов HTML
    • 677 23.7. Незахватывающие круглые скобки
    • 678 23.8. Экранирование специальных символов в регулярных выражениях
    • 679 23.9. Чтение записей с разделителями-шаблонами
    • 681 23.10. Использование функции PHP в регулярном выражении
  • 683 Глава 24. Файлы
    • 683 24.0. Введение
    • 687 24.1. Создание или открытие локального файла
    • 688 24.2. Создание временного файла
    • 689 24.3. Дистанционное открытие файла
    • 690 24.4. Чтение из стандартного ввода
    • 691 24.5. Чтение файла в строку
    • 692 24.6. Подсчет строк, абзацев или записей в файле
    • 696 24.7. Обработка каждого слова в файле
    • 697 24.8. Выбор случайной строки из файла
    • 698 24.9. Случайная перестановка всех строк в файле
    • 698 24.10. Обработка текстовых полей переменной длины
    • 700 24.11. Чтение конфигурационных файлов
    • 702 24.12. Изменение файла «на месте» без использования временного файла
    • 704 24.13. Сброс буферизованного вывода в файл
    • 705 24.14. Запись в стандартный вывод
    • 706 24.15. Одновременная запись по нескольким файловым дескрипторам
    • 707 24.16. Экранирование метасимволов командного процессора
    • 708 24.17. Передача входных данных программе
    • 709 24.18. Получение стандартного вывода от программ
    • 711 24.19. Получение стандартного потока ошибок от программы
    • 712 24.20. Блокировка файла
    • 715 24.21. Чтение и запись нестандартных типов файлов
    • 719 24.22. Чтение и запись сжатых файлов
  • 721 Глава 25. Каталоги
    • 721 25.0. Введение
    • 724 25.1. Чтение и запись временных меток
    • 725 25.2. Чтение метаданных
    • 727 25.3. Изменение разрешений или владельца файла
    • 728 25.4. Получение компонентов имени файла
    • 729 25.5. Удаление файла
    • 730 25.6. Копирование и перемещение файла
    • 730 25.7. Обработка всех файлов в каталоге
    • 732 25.8. Получение списка файлов по шаблону
    • 734 25.10. Создание новых каталогов
    • 735 25.11. Удаление каталога и его содержимого
    • 736 25.12. Программа: вывод содержимого каталога веб-сервера
    • 740 25.13. Программа: поиск по сайту
  • 743 Глава 26. PHP в режиме командной строки
    • 743 26.0. Введение
    • 745 26.1. Разбор аргументов
    • 746 26.2. Разбор аргументов функцией getopt
    • 748 26.3. Чтение с клавиатуры
    • 750 26.4. Выполнение кода PHP для каждой строки входного файла
    • 752 26.5. Чтение паролей
    • 755 26.6. Консольный вывод в цвете
    • 756 26.7. Программа: DOM Explorer
  • 760 Глава 27. Пакеты
    • 760 27.0. Введение
    • 763 27.1. Определение и установка зависимостей Composer
    • 764 27.2. Поиск пакетов Composer
    • 766 27.3. Установка пакетов Composer
    • 769 27.4. Использование программы установки PEAR
    • 772 27.5. Поиск пакетов PEAR
    • 774 27.6. Поиск информации о пакете
    • 775 27.7. Установка пакетов PEAR
    • 777 27.8. Обновление пакетов PEAR
    • 778 27.9. Удаление пакетов PEAR
    • 780 27.10. Установка пакетов PECL
  • 782 Об авторах

Инструкция как скачать книгу Дэвид Скляр, Адам Трахтенберг: PHP. Рецепты программирования в форматах DjVu, PDF, DOC или fb2 совершенно бесплатно.
PHP. Рецепты программирования
Рейтинг книги:
0 голосов
3547

Поиск книг:




При поиске учитываются только слова, длина которых больше 3-х символов.

Статистика: