В книге "Самоучитель PHP 5/6" описаны самые последние версии языка разработки серверных сценариев РНР - 5.3 и 6.0. Рассмотрены основы языка, вопросы объектно-ориентированного программирования на РНР, обработки исключительных ситуаций, взаимодействия с MySQL, регулярные выражения, работа с электронной почтой. Книга содержит множество примеров, взятых из реальной практики разработки динамических Web-сайтов.
Третье издание книги, ранее выходившей под названием "Самоучитель РНР 5", существенно переработано, дополнено и будет интересно не только программистам, впервые знакомящимся с языком, но и читателям предыдущих изданий книги и профессионалам.
Для программистов и Web-разработчиков.
Содержание
Оглавление ВВЕДЕНИЕ 1
Нововведения PHP 6 2
Благодарности 2
ГЛАВА 1. ЧТО ПРЕДСТАВЛЯЕТ СОБОЙ PHP? 3
1.1. История PHP 3
1.2. Место и роль PHP в Интернете 5
1.2.1. Серверные технологии 6
UNIX-подобная операционная система 6
Web-сервер 7
Серверный язык 7
Файлы и базы данных 8
Электронная почта 9
1.2.2. Клиентские технологии 9
Web-браузеры, HTML 10
Каскадные таблицы стилей CSS и XML 10
Flash-ролики 11
FTP-клиенты 11
Удаленный доступ к серверу. Протокол SSH 12
ГЛАВА 2. БЫСТРЫЙ СТАРТ 13
2.1. Скрипты 13
2.2. Начальные и конечные теги 16
2.3. Использование точки с запятой 18
2.4. Составные выражения. Фигурные скобки 19
2.5. Комментарии 21
ГЛАВА 3. ПЕРЕМЕННЫЕ И ТИПЫ ДАННЫХ 23
3.1. Объявление переменной. Оператор = 23
3.2. Типы данных 24
3.3. Целые числа 25
3.4. Вещественные числа 27
3.5. Строки 28
3.6. Кавычки 28
3.7. Оператор <<< 32
3.8. Обращение к неинициализированной переменной. Замечания (Notice) 32
3.9. Специальный тип NULL 34
3.10. Логический тип 35
3.11. Уничтожение переменной. Конструкция unset() 36
3.12. Проверка существования переменной. Конструкции isset() и empty() 36
3.13. Определение типа переменной 38
3.14. Неявное приведение типов 44
3.15. Явное приведение типов 46
3.16. Динамические переменные 51
ГЛАВА 4. КОНСТАНТЫ 53
4.1. Объявление константы. Функция define() 53
4.2. Функции для работы с константами 57
4.3. Динамически константы. Функция constant() 58
4.4. Проверка существования константы 59
4.5. Предопределенные константы 60
ГЛАВА 5. ОПЕРАТОРЫ И КОНСТРУКЦИИ ЯЗЫКА 63
5.1. Объединение строк. Оператор "точка" 63
5.2. Конструкция echo. Оператор "запятая" 64
5.3. Арифметические операторы 65
5.4. Поразрядные операторы 70
5.5. Операторы сравнения 75
5.6. Условный оператор if 79
5.7. Логические операторы 81
5.8. Условный оператор x ? y : z 89
5.9. Переключатель switch 90
5.10. Цикл while 95
5.11. Цикл do ... while 101
5.12. Цикл for 102
5.13. Включение файлов 107
5.14. Подавление вывода ошибок. Оператор @ 113
5.15. Приоритет выполнения операторов 114
ГЛАВА 6. МАССИВЫ 117
6.1. Создание массива 117
6.2. Ассоциативные и индексные массивы 124
6.3. Многомерные массивы 129
6.4. Интерполяция элементов массива в строки 130
6.5. Конструкция list() 131
6.6. Обход массива 134
6.7. Цикл foreach 138
6.8. Проверка существования элементов массива 140
6.9. Количество элементов в массиве 144
6.10. Сумма элементов массива 146
6.11. Случайные элементы массива 147
6.12. Сортировка массивов 149
6.13. Суперглобальные массивы. Массив $_SERVER 159
6.13.1. Элемент $_SERVER['DOCUMENT_ROOT'] 159
6.13.2. Элемент $_SERVER['HTTP_REFERER'] 160
6.13.3. Элемент $_SERVER['HTTP_USER_AGENT'] 161
6.13.4. Элемент $_SERVER['REMOTE_ADDR'] 161
6.13.5. Элемент $_SERVER['SCRIPT_FILENAME'] 162
6.13.6. Элемент $_SERVER['SERVER_NAME'] 162
6.13.7. Элемент $_SERVER['QUERY_STRING'] 163
6.13.8. Элемент $_SERVER['PHP_SELF'] 164
ГЛАВА 7. ФУНКЦИИ 165
7.1. Объявление и вызов функции 165
7.2. Параметры функции 168
7.3. Передача параметров по значению и ссылке 169
7.4. Необязательные параметры 170
7.5. Переменное количество параметров 172
7.6. Глобальные переменные 174
7.7. Статические переменные 175
7.8. Возврат массива функцией 176
7.9. Рекурсивные функции 177
7.10. Вложенные функции 179
7.11. Динамическое имя функции 179
7.12. Анонимные функции 180
7.13. Проверка существования функции 182
7.14. Неявное выполнение функций. Оператор declare() 188
7.15. Вспомогательные функции 193
ГЛАВА 8. ВЗАИМОДЕЙСТВИЕ PHP С HTML 197
8.1. Передача параметров методом GET 197
8.2. HTML-форма и ее обработчик 202
8.3. Текстовое поле 207
8.4. Поле для приема пароля 208
8.5. Текстовая область 209
8.6. Скрытое поле 210
8.7. Флажок 211
8.8. Список 213
8.9. Переключатель 215
8.10. Загрузка файла на сервер 217
ГЛАВА 9. СТРОКОВЫЕ ФУНКЦИИ 221
9.1. Функции для работы с символами 221
9.2. Поиск в строке 225
9.3. Замена в тексте 231
9.4. Преобразование регистра 237
9.5. Работа с HTML-кодом 238
9.6. Экранирование 247
9.7. Форматный вывод 250
9.8. Преобразование кодировок 256
9.9. Сравнение строк 259
9.10. Хранение данных 265
9.11. Работа с путями к файлам и каталогами 269
9.12. Объединение и разбиение строк 271
ГЛАВА 10. РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ 283
10.1. Как изучать регулярные выражения? 283
10.2. Синтаксис регулярных выражений 284
10.3. Функции для работы с регулярными выражениями 288
10.4. Функции preg_match() 289
10.5. Функция preg_match_all() 294
10.6. Функция preg_replace() 297
10.7. Функция preg_replace_callback() 302
10.8. Функция preg_split() 304
10.9. Функция preg_quote() 306
ГЛАВА 11. ДАТА И ВРЕМЯ 309
11.1. Формирование даты и времени 309
11.2. Географическая привязка 316
11.3. Форматирование даты и времени 322
ГЛАВА 12. МАТЕМАТИЧЕСКИЕ ФУНКЦИИ 337
12.1. Предопределенные константы 337
12.2. Поиск максимума и минимума 338
12.3. Генерация случайных чисел 340
12.4. Преобразование значений между различными системами счисления 342
12.5. Округление чисел 346
12.6. Логарифмические и степенные функции 349
12.7. Тригонометрические функции 353
12.8. Информационные функции 355
ГЛАВА 13. ФАЙЛЫ И КАТАЛОГИ 363
13.1. Создание файлов 363
13.2. Манипулирование файлами 370
13.3. Чтение и запись файлов 373
13.3.1. Чтение файлов 376
13.3.2. Запись файлов 383
13.3.3. Обязательно ли закрывать файлы? 387
13.3.4. Дозапись файлов 389
13.3.5. Блокировка файлов 390
13.3.6. Прямое манипулирование файловым указателем 395
13.4. Права доступа 399
13.5. Каталоги 403
ГЛАВА 14. HTTP-ЗАГОЛОВКИ 411
14.1. Функции для управления HTTP-заголовками 412
14.2. Кодировка страницы 414
14.3. HTTP-коды состояния 415
14.4. Список HTTP-заголовков 416
14.5. Подавление кэширования 419
ГЛАВА 15. COOKIE 425
ГЛАВА 16. СЕССИИ 431
ГЛАВА 17. ЭЛЕКТРОННАЯ ПОЧТА 437
17.1. Отправка почтового сообщения 437
17.2. Рассылка писем 439
ГЛАВА 18. ОБЪЕКТНО-ОРИЕНТИРОВАННЫЕ ВОЗМОЖНОСТИ PHP 441
18.1. Введение в объектно-ориентированное программирование 441
18.2. Создание класса 443
18.3. Создание объекта 443
18.4. Инкапсуляция. Спецификаторы доступа 445
18.5. Методы класса. Член $this 447
18.6. Специальные методы класса 451
18.7. Функции для работы с методами и классами 452
18.8. Конструктор. Метод __construct() 454
18.9. Параметры конструктора 457
18.10. Деструктор. Метод __destruct() 459
18.11. Автозагрузка классов. Функция __autoload() 460
18.12. Аксессоры. Методы __set() и __get() 461
18.13. Проверка существования члена класса. Метод __isset() 463
18.14. Уничтожение члена класса. Метод __unset() 464
18.15. Динамические методы. Метод __call() 466
18.16. Интерполяция объекта. Метод __toString() 468
18.17. Наследование 470
18.18. Спецификаторы доступа и наследование 473
18.19. Перегрузка методов 476
18.20. Полиморфизм 478
18.21. Абстрактные классы 480
18.22. Абстрактные методы 481
18.23. Создание интерфейса 483
18.24. Реализация нескольких интерфейсов 485
18.25. Наследование интерфейсов 486
18.26. Статические члены класса 487
18.27. Статические методы класса 490
18.28. Константы класса 491
18.29. Предопределенные константы 493
18.30. Final-методы класса 494
18.31. Final-классы 496
18.32. Клонирование объекта 497
18.33. Управление процессом клонирования. Метод __clone() 498
18.34. Управление сериализацией. Методы __sleep() и __wakeup() 500
18.35. Синтаксис исключений 509
ГЛАВА 19. РАБОТА С СУБД MYSQL 513
19.1. Введение в СУБД и SQL 514
19.2. Первичные ключи 517
19.3. Создание и удаление базы данных 519
19.4. Выбор базы данных 521
19.5. Типы данных 523
19.6. Создание и удаление таблиц 529
19.7. Вставка числовых значений в таблицу 536
19.8. Вставка строковых значений в таблицу 538
19.9. Вставка календарных значений 540
19.10. Вставка уникальных значений 543
19.11. Механизм AUTO_INCREMENT 544
19.12. Многострочный оператор INSERT 544
19.13. Удаление данных 545
19.14. Обновление записей 547
19.15. Выборка данных 549
19.16. Условная выборка 551
19.17. Псевдонимы столбцов 558
19.18. Сортировка записей 558
19.19. Вывод записей в случайном порядке 561
19.20. Ограничение выборки 562
19.21. Вывод уникальных значений 563
19.22. Объединение таблиц 565
ГЛАВА 20. ВЗАИМОДЕЙСТВИЕ MYSQL И PHP 569
20.1. Функция mysql_connect() 569
20.2. Функция mysql_close() 571
20.3. Функция mysql_select_db() 572
20.4. Функция mysql_query() 573
20.5. Функция mysql_result() 575
20.6. Функция mysql_fetch_row() 576
20.7. Функция mysql_fetch_assoc() 577
20.8. Функция mysql_fetch_array() 580
20.9. Функция mysql_fetch_object() 582
20.10. Функция mysql_num_rows() 583
ЗАКЛЮЧЕНИЕ 587
Online-поддержка 588
Портал по программированию SoftTime.ru 588
Портал Softtime.org 590
Сайт Softtime.biz 590
ПРИЛОЖЕНИЯ 585
ПРИЛОЖЕНИЕ 1
. УСТАНОВКА И НАСТРОЙКА PHP, WEB-СЕРВЕРА APACHE И MYSQL-СЕРВЕРА 595
П1.1. Где взять дистрибутивы? 595
П1.1.1. Дистрибутив PHP 596
П1.1.2. Дистрибутив Apache 597
П1.1.3. Дистрибутив MySQL 598
П1.2. Установка Web-сервера Apache под Windows 599
П1.3. Установка Web-сервера Apache под Linux 601
П1.4. Настройка виртуальных хостов 602
П1.5. Настройка кодировки по умолчанию 606
П1.6. Управление запуском и остановкой Web-сервера Apache 607
П1.7. Управление Apache из командной строки 608
П1.8. Установка PHP под Windows 609
П1.8.1. Установка PHP в качестве модуля 609
П1.8.2. Установка PHP как CGI-приложения 610
П1.9. Установка PHP под Linux 612
П1.10. Общая настройка конфигурационного файла php.ini 613
П1.11. Настройка и проверка работоспособности расширений PHP 616
ПРИЛОЖЕНИЕ 2. УСТАНОВКА MYSQL 618
П2.1. Установка MySQL под Windows 618
П2.1.1. Процесс установки 618
П2.1.2. Постинсталляционная настройка 624
П2.1.3. Проверка работоспособности MySQL 631
П2.2. Установка MySQL под Linux 634
П2.3. Конфигурационный файл 637
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ 641
Книга предоставляет наиболее полное описание объектно-ориентированных возможностей PHP. Предполагается, что читатель знаком с базовыми возможностями PHP, языком разметки HTML и приемами работы с СУБД MySQL. Даны основы объектно-ориентированного подхода: классы, специальные методы классов, инкапсуляция, наследование и полиморфизм, интерфейсы, статические, константные и final члены класса, особенности клонирования и длительного хранения объектов, обработка исключений и др.
Данная книга является превосходным учебным пособием, позволяющим быстро освоить и эффективно использовать РНР. Здесь вы найдете все, что для этого необходимо: от описания настройки РНР, основ CGI и базовых конструкций языка, до работы с сессиями, каналами, сокетами и другими специальными технологиями РНР. Особое место занимает рассмотрение взаимодействия РНР с базами данных. В книге рассмотрены, как MySQL, так и SQLite, поддерживаемая РНР 5.