Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Колисниченко Д.Н.,

Самоучитель PHP4/5

"Наука и Техника", 2004

Содержание

Введение

Часть I. Готовимся к работе с РНР

Глава 1. Что нужно знать об устройстве Интернета прежде чем приступить к изучению PHP. Основные технологии
1.1. Архитектура сети: одноранговая и клиент/сервер
 	1.1.1. Одноранговые сети
 	1.1.2. Сети клиент/сервер
1.2. Принципиальная схема сети Интернет. Основные устройства Интернета
1.3. Что такое протокол. Протоколы Интернета
1.4. Как осуществляется сетевое взаимодействие
 	1.4.1. В каком виде информация передается по сети
 	1.4.2. Семиуровневая модель взаимодействия открытых систем OSI
 	1.4.3. Уровни сетевого взаимодействия
 		Физический уровень (Physical Layer)
 		Канальный уровень (Data link Layer)
 		Сетевой уровень (Network Layer)
 		Транспортный уровень (Transport Layer)
 		Сеансовый уровень (Session Layer)
 		Представительный уровень (Presentation Layer)
 		Прикладной уровень (Application Layer)
 	1.4.4. Интернет и модель OSI
1.5. Адресация в сети Интернет
 	1.5.1. Вид IP-адреса и способы его назначения
1.5.2. Классы IP-сетей
 	1.5.3. Доменные имена, URL-адреса и их использование
1.6. Служба доменных имен DNS
1.7. World Wide Web и HTML-документы
1.8. Порты и сетевые демоны
1.9. Структура пакетов IP и TCP
1.10. Глоссарий
Глава 2. Выбор хостинга. Регистрация доменного имени
2.1. Хостинг и хостинг-провайдеры
2.2. Обзор хостинг-провайдеров
 	2.2.1. Платный хостинг
 		AvaHost.Ru -- http://www.avahost.ru
 		AlexHost.Ru -- http://www.alexhost.ru
 		Agava.Ru -- http://www.agava.ru, http://www.holm.ru 
 	2.2.2. Бесплатный хостинг
 		Бесплатный хостинг от Agava
2.3. Поиск оптимального хостинг-провайдера
2.4. На что следует обратить внимание
2.5. Регистрация доменного имени

Глава 3. Интерфейс CGI
3.1. Принципы работы CGI
 	3.1.1. Общие положения
 	3.1.2. Как происходит взаимодействие сервера с браузером
 	3.1.3. Зачем нужен CGI-интерфейс и какие цели он выполняет
 	3.1.4. Немного подробнее о CGI
 	3.1.5. Способы создания CGI-сценариев
3.2. Методы передачи данных GET и POST
 	3.2.1. Зачем и в каком виде происходит передача данных серверу и CGI-сценариям
 	3.2.2. Метод GET
 		Формирование запроса браузером
 		Формирование ответа сервером
 	3.2.3. Метод POST
3.3. Переменные окружения CGI
3.4. Заголовки HTTP
 	3.4.1. Описание основных заголовков HTTP
 		Заголовок Accept
 		Заголовок Content-type
 		Заголовок Content-length
 		Заголовок Cookie
 		Заголовок GET
 		Заголовок Location
 		Заголовок POST
 		Заголовок Pragma
 		Заголовок Server
 		Заголовок Referer
 		Заголовок User-Agent
 	3.4.2. Некоторые особенности
3.5. Коды ответов HTTP
3.6. Типы MIME
3.7. PHP и CGI

Глава 4. Описание, установка и настройка необходимого программного обеспечения
4.1. Выбор необходимого программного обеспечения
   4.1.1. Выбор операционной системы
   4.1.2. Выбор программ
4.2. Web-сервер Apache
   4.2.1. Какие функции выполняет Apache  (и зачем он нам сейчас нужен на клиентской машине)
   4.2.2. Конфигурационные файлы сервера Apache
   4.2.3. Конфигурационный файл httpd.conf и его директивы
 	Общие директивы
 	Директивы протоколирования
Директивы управления производительностью
 	Директивы обеспечения постоянного соединения с клиентом
 	Директивы создания виртуальных хостов
 	Директивы настройки отображения каталогов
 	Директивы обработки MIME-типов
 	Директивы для работы с многоязычными документами
 	Директивы перенаправления
 	Директивы обработки ошибок
   4.2.4. Директивы управления доступом к отдельным каталогам
 	Блок директив Directory
 	Блок директив Limit
 	Блок директив Location
   4.2.5. Каталоги пользователей
   4.2.6. Виртуальные HTTP-серверы
 	Виртуальные серверы с идентификацией по имени
 	Виртуальные серверы с идентификацией по IP-адресу
   4.2.7. Пример конфигурационного файла httpd.conf
4.3. Установка Apache+PHP+MySQL под Linux (Unix)
   4.3.1. Установка Apache
 	Установка пакетов
 	Конфигурирование Apache с помощью netconf
   4.3.2. Установка MySQL
   4.3.3. Установка PHP и настройка связки Apache+PHP+MySQL
4.3.4. Тестирование созданной конфигурации
4.4. Установка Apache+PHP+MySQL под Windows
   4.4.1. Установка и настройка Apache
   4.4.2. Тестирование Apache под Windows
   4.4.3. Установка PHP и настройка Apache для работы с PHP
   4.4.4. Установка MySQL

Часть II. Основные понятия, функции и механизмы РНР

Глава 5. Основы языка PHP
5.1. Структура программ в РНР. Первая программа
 	5.1.1. Стандартный вид РНР-сценария
 		Общие понятия и описание РНР
 		Пишем первую программу (скрипт) на РНР
 	5.1.2. РНР-сценарии в теле HTМL-документов
 	5.1.3. Комментарии в РНР-сценариях
5.2. Переменные и типы данных
 		Правила задания переменных
 		Типы данных
 		Функции определения и задания типа переменных
 		Логические переменные и их особенности в РНР
5.3. Константы
 		Задание констант. Функция define()
 		Проверка существования констант. Функция defined()
 		Стандартные константы
5.4. Операции с переменными
 		Присвоение значений. Оператор присваивания
 		Проверка существования переменной
 		Удаление переменных
5.5. Выражения и операции
 	5.5.1. Понятие "выражение" в РНР
 	5.5.2. Операции в РНР
 		Арифметические операции
 		Битовые операции
 		Логические выражения
 	5.5.3. Строки и строковые выражения
 		Строки в апострофах и строки в кавычках
 		Строковые операции
 		Многострочные строковые переменные
 		Строки в обратных кавычках (вызов внешней программы)
 	5.5.4. Оператор эквивалентности (===)
5.6. Ссылки
 	Жесткие ссылки
 	Символические ссылки
5.7. Основные конструкции языка
 	5.7.1. Условный оператор
 	5.7.2. Циклы
 		Цикл с предусловием While
 		Цикл с постусловием do while
 		Цикл со счетчиком For
 		Альтернативный синтаксис
 		Вложенные циклы
 		Операторы break и continue
 		Цикл перебора массивов foreach
5.7.3. Инструкция switch-case (конструкция выбора)

5.8. Собираем один скрипт из нескольких отдельных скраиптов
 	5.8.1. Инструкции require
 	5.8.2. Инструкции include
 	5.8.3. Особенности использования include и require
 	5.8.4. Инструкции однократного включения include_once и require_once

5.9. Обработка ошибок

Глава 6. Передача параметров сценариям
6.1. Формы в HTML-документах
 	6.1.1. Общие положения
 	6.1.2. Элементы форм
 	6.1.3. Тег FORM - контейнер форм
 	6.1.4. Тег Input и способы его использования
 		Однострочные поля ввода
 		Поле ввода пароля
 		Скрытое текстовое поле
 		Независимые переключатели
 		Зависимые переключатели
 		Кнопка отправки формы
 		Кнопка сброса
 		Кнопка отправки с индивидуальным рисунком
 	6.1.5. Ввод многострочного текста. Тег TEXTAREA
 	6.1.6. Списки выбора. Тег SELECT
 		Списки с единственным выбором
 		Списки множественного выбора
 	6.1.7. Загрузка файлов
6.2. Передача параметров с помощью формы
6.3. Механизм Cookies
 	6.3.1. Принцип работы механизма Cookies
 	6.3.2. Программирование Cookies
 		Установка Cookies
 		Чтение значений Cookies

Глава 7. Массивы и списки
7.1. Массивы и списки
 		Понятие массива
 		Понятие списка
7.2. Ассоциативные массивы
7.3. Инструкции list() и array()
7.4. Инструкция array() и создание многомерных массивов
7.5. Операции над массивами
 	7.5.1. Удаление массивов
 	7.5.2. Слияние массивов
 		Стандартное слияние
 		Слияние с помощью функции array_merge()
 	7.5.3. Перебор массива
 		Косвенный перебор
 		Прямой перебор
 		Недостатки косвенного перебора
7.6. Сортировка массивов
 		Сортировка массива по значению. Функции asort() и arsort()
 		Сортировка массивов по ключам. Функции ksort() и krsort()
 		Сортировка списка
 		Переворачивание массива. Функция array_reverse()
 		Перемешивание списков. Функция shuffle()
 		Пользовательская сортировка массивов. Функции uksort(), uasort() и usort()
7.7. Получение части массива
7.8. Добавление и удаление элементов массива
 		Добавление в конец массива
 		Удаление последнего элемента списка
 		Добавление в начало списка. Удаление первого элемента списка
 		Функция array_unique()
7.9.	Переменные и массивы. Взаимные переходы
 		Упаковка переменных в массив. Функция compaсt()
 		Разупаковка (извлечение) переменных из массива. Функция extract()
7.10.	Создания диапазона чисел
7.11.	Небольшой практический пример

Глава 8. Функции пользователя. Создание и использование собственных функций
8.1. Пользовательские функции в РНР
 		Что такое "пользовательские функции"
 		Особенности пользовательских функций в РНР
 8.2. Создание пользовательских функций
 		Синтаксис задания функций в РНР
 		Первая функция
8.3. Передача параметров функции
 		Передача значений
 		Передача переменных по ссылке
8.4. Параметры по умолчанию
8.5. Переменное число параметров в функции
8.6. Локальные и глобальные переменные
8.7. Статические переменные
8.8. Рекурсия
8.9. Полезные примеры
 		Инициализация переменных
 		Параметры-массивы
 		Возврат функцией ссылки
8.10. Условно определяемые функции

Глава 9. Функции для работы со строками
9.1. Операции над строками
 		Строки в РНР
 		Конкатенация строк
 		Сравнение строк
9.2. Базовые функции работы со строками
9.3. Замена в строке
9.4. Функции для работы с отдельными символами
9.5. Изменение регистра символов. Установка и настройка локали
9.6. Преобразование символов
 		Функции удаления пробелов
 		URL-кодирование и декодирование
 		Использование слэшей
 		Замена специальных символов на их HTML-эквиваленты
9.7. Преобразование кодировок
9.8. Специальные функции
 		Хэш функции
 		Функция Serialize()

Глава 10. Полезные стандартные функции
10.1. Работа с датой и временем
10.2. Генератор случайных чисел. Вывод случайным образом баннеров
10.3. Математические функции
10.4. Преобразования систем счисления
10.5. Запуск внешних программ

Глава 11. Работа с файлами и каталогами
11.1.Общие замечания
12.2.Основные операции с файлами
 	11.2.1. Открытие файла
 		Функция fopen() и открытие файла
 		Конструкция or die()
 	11.2.2. Временные файлы и их использование
 	11.2.3. Чтение и запись в бинарном режиме
 	11.2.4. Чтение и запись текстовых файлов (Построчные чтение и запись)
 	11.2.5. Закрытие файлов
 	11.2.6. Функция file(). Чтение файла в список
 	11.2.6. Чтение файлов в строку
 	11.2.7. Чтение CSV-файлов
11.3.Функции для работы с файлами
 	11.3.1. Функции манипулирования файлами
 	11.3.2. Функции для работы с именами файлов
 	11.3.3. Функции определения типа и параметров файла
 	11.3.4. Специальные функции
11.4. Права доступа
 	11.4.1. Права доступа в ОС Linux
 	11.4.2. Права доступа в Windows.
 	11.4.3. Функции определения прав доступа к файлу
11.5.Блокирование доступа
 		Общие положения
 		Виды блокировки
 		Реализация блокировки в РНР
11.6. Запись данных в начало файла
11.6.Функции для работы с каталогами
 	11.6.1. Манипуляции с каталогами
 	11.6.2. Открытие, чтение и закрытие каталогов
11.7.Каналы
 		11.7.1. Общие положения
 		11.7.2. Управление каналами с помощью языка С
 		11.7.3. Управление каналами в РНР

Часть III. Расширенные функции РНР

Глава 12. Графические функции PHP
12.1. Основные понятия
 		12.1.1. Библиотека GD
 		12.1.2. Методика создания графического оформления сайтов в РНР
12.2. Вывод готовых изображений
12.3. Создание изображений в PHP
12.4. Графические форматы и библиотека GD
 	Форматы и их указание
12.5. Определение размера картинки
12.6. Графические примитивы
 	12.6.1. Создание (определение) цвета
 		Задание нового цвета в палитре рисунка
 		Подбор ближайшего цвета из палитры
 		Эффект прозрачности
 	12.6.2. Рисование графических примитивов в РНР
 		Рисование точки
 		Рисование линий
 		Рисование прямоугольников
 		Рисование многоугольников
 		Рисование эллипсов и дуг
 		Заполнение области
12.7. Вывод текста в изображении
 		Вывод строки текста
 		Задание собственного шрифта
 		Вывод строки текста в вертикальном направлении
12.8. Работа с TTF-шрифтами
12.9. Копирование участков изображения

Глава 13. Сервер баз данных MySQL
13.1. Общие положения
 		База данных, таблицы записи
 		Клиентская и серверные части MySQL
 		Язык SQL
13.2. Основы SQL
 	13.2.1. Базовая терминология
 	13.2.2. Поля и их типы
 	13.2.3 Создание таблиц 
 	13.2.4. Добавление данных в таблицу
 	13.2.5. Обновление записей
 	13.2.6. Удаление записей
 	13.2.7. Выбор записей
 	13.2.8. Дополнительные функции MIN, MAX, AVG, SUM
 	13.2.9. Группировка записей
 	13.2.10. Сортировка записей
 	13.2.11. Ключи
 	13.2.12. Отключение от базы данных
 	13.2.13. Внешние ключи
 	13.2.14. Удаление полей и таблиц

13.3. Функции PHP для работы с MySQL
 	13.3.1. Соединение PHP-сценариев с таблицами MySQL
 	13.3.2. Выбор базы данных
 	13.3.3. Обработка ошибок
 	13.3.4. Выполнение запросов к базе данных
 	13.3.5. Обработка результата запроса
 	13.3.6. Получение информации о результате

Глава 14. Сетевые функции
14.1.Сокеты
 	14.1.1. Понятие сокета. Функции для работы с сокетами
 		Открытие и использование сокетов
 		Блокирующий/неблокирующий режимы. Функция soket_set_blocking()
 	14.1.2. Отправка электронных писем с помощью сокетов
 14.2. Работа с DNS
 	14.2.1. DNS-функции
 	14.2.2. Корректное разрешение IP-адреса в доменное имя

Часть IV. Создание своих проектов на РНР

Глава 15. Отправление и прием писем. Делаем почтовую рассылку на сайте
15.1. Использование функции mail() для отправки сообщений
15.2. Если сообщения не отправляются
15.3. Отправление писем в формате HTML и вложений
 	15.3.1. Общие положения
 	15.3.2. Использование класса HtmlMimeMail
 	15.3.3. Сводный алгоритм отправки сообщений в различных MIME-форматах
 	15.3.4. Автоматическая отправка копий сообщений
15.4. Прием писем по протоколу POP3
 	15.4.1. Общие сведения о механизме приема писем и протоколе РОР3
 	15.4.2. Использование класса РОР3
 	15.4.3. Пишем сценарий получения сообщений

Глава 16. Делаем чат для своего сайта
16.1. Как самому написать чат
16.2. Простой чат - SimpleChat
 	16.2.1. Установка, настройка и работа с чатом
 	16.2.2. Проблемы при установке
 		Некорректная работа
 		Я не могу очистить чат!
 	16.2.3. Полезные советы
16.3. Профессиональный чат CHAT.PHP.SPB.RU
 		Установка и настройка чата под Windows
 		Установка и настройка чата под Linux

Глава 17. Голосование на сайте
17.1. Делаем голосование сами
17.2. Используем профессиональный скрипт
 		Общее описание и установка Advanced Poll
 		Настройка Advanced Poll. Центр управления
 		Создание голосования
 		Редактирование голосования
 		Использование шаблонов
 		Несколько голосований на одной web-странице

Глава 18.  Лента новостей 
18.1. Принцип организации новостной ленты
18.2. Используем профессиональный скрипт (FusionPHP)
 	18.2.1. Устанавливаем скрипт
 	18.2.2. Работа со скриптом
Глава 19. Гостевая книга и Форум
19.1. Создаем сами гостевую книгу
19.2. Используем готовый скрипт гостевой книги
 	19.2.1. Установка гостевой книги
 	19.2.2. Работа с гостевой книгой
19.3. Форум PHPBB
 	19.3.1. Установка форума PHPBB
 	19.3.2. Изменение внешнего вида форума
 	19.3.3. Администрирование форума
 
Глава 20. Счетчик и анализ серверной статистики
20.1. Счетчик и протоколирование посещений на сайте
 	20.1.1. Простой счетчик
 		Разрабатываем механизм работы счетчика
 		Пишем сценарий счетчика
 		"Отладка" счетчика
 	20.1.2. Создание графического счетчика
 	20.1.3. Протоколирование посещений
 		Методика протоколирования
 		Реализация протоколирования
 	20.1.4. Разработка системы статистики
20.2. Анализ серверной статистики (кто откуда приходил и что делал) Программа Webalizer
 	20.2.1. 	Методика сбора и анализа серверной статистики. Серверные журналы
 	20.2.2. Установка и запуск Webalizer
 	20.2.3 Конфигурационные параметры Webalizer

Глава 21. Сессии в РНР
21.1. Обзор механизма сессий
 	21.1.1. Особенности CGI и недостатки Cookies
 	21.1.2. Механизм сессий: принцип работы
 21.2. Инициализация сессии и регистрация в сессии переменных
21.3. Имя сессии
21.4. Еще одни способ (устаревший) обойти использование Cookies в сессиях 
21.5. Обработчики сессии
21.6. Сохраниние в сессии ассоциативного массива

Глава 22. Работа с WWW
22.1. Функция Header()
22.2. Запрет кэширования
22.3. SSI и PHP. Включение одних сценариев и html-страниц в другие
 	22.3.1. Общие положения
 	22.3.2. SSI и PHP . Функция virtual
22.4. Загрузка файла на сервер
 		Multipart-формы и  их описание
 		Сценарий загрузки файлов на сервер. Обработка multipart-форм
 		Организация виртуальной фотогалереи с возможностью самостоятельного  размещения в ней фотографий пользователей

Глава 23. Создание и использование шаблонов. Модули
23.1. Разделение проекта на дизайнерскую часть и программирование
23.2. Использование модулей. Создание библиотекаря
 	23.2.1. Общие положения
 	23.2.2. Создание библитекаря
 	23.2.3. Использование библиотекаря. Подключение модулей
23.3. Использвоание шаблонов

Глава. 24. Система PHP-Nuke -- система управления содержимым сайта (контентом). Система PHP-Nuke
24.1. Возможности и особенности PHP-Nuke
24.2. Установка PHP-Nuke
24.3. Возможности администрирования. Настройка сайта
24.4. Управление контентом
24.5. Различные настройки

Часть V. РНР для профессионалов

Глава 25. Объектно-ориентированное программирование и PHP
25.1. Основные принципы и понятия объектно-ориентированного программирования
 	Введение
 	Инкапсуляция (encapsulation)
 	Полиморфизм (polymorphism)
 	Наследование (inheritance)
25.2. Создание класса в РНР
25.3. Доступ к методам и свойствам объекта
25.4. Инициализация объектов
25.5. Еще раз о наследовании и полиморфизме
25.6. Пример класса
25.7. ООП и PHP5

Глава 26. Тонкая настройка интерпретатора РНР
 26.1. Директивы файла конфигурации php.ini
 	Общий формат файла php.ini
 	Настройка обработки ошибок. Директива error_reporting
 	Максимальное время работы сценария. Директива max_execution_time
 	"Вредная" директива magic_quotes_gpc
26.2. Индивидуальная настройка обработки ошибок для конкретного сценария
26.3. Синтаксическая проверка выполнение кода
 	Проверка без запуска кода
 	Проверка с запуском кода
26.4. Финализаторы. Функция Register_shutdown_function()
26.5. Информационные функции
 	Функция phpinfo()
 	Функция phpversion()
 	Функция getlastmod()
26.6. "Засыпание" сценария


Глава 27. Защищенные соединения
27.1. Настройка SSL-соединения
27.2. Генерирование сертификатов
27.3.Авторизация и переменные среды окружения

Глава 28. Два проекта в одной главе
28.1. Пишем свой интернет-магазин
 	28.1.1. Вводная часть
 	28.1.2. Структура Интернет-магазина
 	28.1.3. Пишем вспомогательные скрипты
 	28.1.4. Пишем скрипт Интернет-магазина
 	28.1.5. Тестируем Интренет-магазин

28.2. Дистанционное обучение - система проверки знаний
 	28.2.1. Общие положения
 	28.2.2. Параметры системы проверки знаний
 	28.2.3. Организация. Выработка структуры
 	28.2.4. Пишем код системы проверки знаний

Глава 29. Автоматиpованное управление параметрами хостинга. Система Monster Controls
29.1. Общие положения. Регистрация
29.2. Использование Monster Controls
 	Основное меню. Статистика
 	Раздел Email options
 	Раздел Site Maintenance
 	Раздел Webmaster tools
29.3. Делаем мемберскую зону

Глава 30. Поддержка COM и Java
30.1. Технология COM
30.2. Поддержка Java

Часть VI. Специальные технологии РНР5

Глава 31. Особенности  и специальные возможности РНР5
31.1. Обзор нововведений
 		Общая информация
 		Новые директивы настроечного файла php.ini
 		Новые механизмы поддержки потоков
 		Новые функции графической библиотеки GD
 		Разные новые функции
31.2. Zend Engine 2.0
 	31.2.1. Новая объектная модель и объектные дескрипторы
 	31.2.2. Механизм возврата функциями объектов
 	31.2.3. Разыменование объектов
 	31.2.4. Генная инженерия (клонирование объектов)
 	31.2.5. Оператор delete
 	31.2.6. Конструкторы и иерархия классов
 	31.2.7. Дополнительные возможности

Глава 32. SQLite
32.1. Введение в SQLite
 	31.1.1. Установка
 	31.1.2. Встроенные константы SQLite
 	31.1.3. Список функция SQLite
31.2. Открытие и закрытие базы данных
31.3. Выполнение запросов
32.4.Функции для работы с результатом
32.5. Информационные функции
32.6. Другие функции

Вместо заключения: Горячая десятка ошибок
Ошибка 1
Ошибка 2
Ошибка 3
Ошибка 4
Ошибка 5
Ошибка 6
Ошибка 7
Ошибка 8
Ошибка 9
Ошибка 10