Изучаем PHP 7. Руководство по созданию интерактивных веб-сайтов

Изучаем PHP 7. Руководство по созданию интерактивных веб-сайтов

Изучаем PHP 7. Руководство по созданию интерактивных веб-сайтов
Автор: Скляр Дэвид
Переводчик: И.В. Берштейна, С. Н. Тригуб
Дата выхода: 2017
Издательство: Диалектика
Количество страниц: 382
Размер файла: 2.3 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Содержание....7

Предисловие....13

Кому адресована эта книга....13

Содержание книги....14

На кого не рассчитана эта книга....15

Другие ресурсы....16

Условные обозначения, принятые в книге....17

Условные обозначения в исходном коде....17

Условные обозначения в тексте книги....17

Пользование примерами кода....17

Посвящение....18

Благодарности....18

Об авторе....19

Изображение на обложке....20

От издательства....21

Глава 1. Краткое введение в РНР....22

Место РНР в мире Интернета....22

Достоинства РНР....25

Язык РНР свободно доступен (бесплатно)....25

Язык РНР свободно доступен (как речь)....25

РНР является межплатформенным языком....25

РНР является широко употребляемым языком....26

Сложности РНР скрыты внутри....26

Язык РНР предназначен для веб-разработки....26

РНР в действии....26

Основные правила написания программ на РНР....32

Начальные и конечные дескрипторы....32

Пробелы и учет регистра букв....33

Комментарии....35

Резюме....36

Глава 2. Обработка числовых и текстовых данных....37

Текст....37

Определение символьных строк текста....38

Манипулирование текстом....41

Числа....46

Применение разных типов чисел....47

Арифметические операции....47

Переменные....48

Выполнение операций над переменными....49

Вставка переменных в символьные строки....51

Резюме....52

Упражнения....53

Глава 3. Управляющая логика для принятия решений и повторения операций....55

Общее представление об истинности или ложности....56

Принятие решений....56

Принятие сложных решений....59

Повторение операций....66

Резюме....69

Упражнения....69

Глава 4. Группирование и обработка данных в массивах....71

Основы организации массивов....71

Создание массива....72

Выбор подходящего имени для массива....73

Создание числовых массивов....74

Определение размера массива....75

Перебор массивов....76

Модификация массивов....81

Сортировка массивов....84

Применение многомерных массивов....88

Резюме....91

Упражнения....92

Глава 5. Группирование логики в функциям и файлам....94

Объявление и вызов функций....95

Передача аргументов функциям....96

Возврат значений из функций....100

Представление об области действия переменных....104

Соблюдение правил относительно аргументов и возвращаемых значений....107

Выполнение кода из другого файла....109

Резюме....111

Упражнения....112

Глава 6. Оперирование объектами, объединяя данные и логику....114

Основы организации объектов....115

Конструкторы....117

Индикация ошибок с помощью исключений....118

Расширение объектов....120

Доступность свойств и методов....123

Пространства имен....124

Резюме....125

Упражнения....126

Глава 7. Создание веб-форм для обмена данными с пользователями....127

Полезные серверные переменные....131

Доступ к параметрам формы....131

Обработка форм с помощью функций....134

Проверка достоверности данных....136

Обязательные элементы формы....138

Числовые или строковые элементы формы....138

Диапазоны чисел....141

Адреса электронной почты....142

Списки, размечаемые дескриптором  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .143

HTML и JavaScript . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .145

Не только синтаксис . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .148

Отображение значений, устанавливаемых по умолчанию . . . . . . . . . . . . . . . . . . . . . . . . . . . .148

Собирая все вместе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .151

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160

Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .160

Глава 8. Хранение информации в базах данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .162

Организация информации в базе данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163

Подключение к программе базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164

Создание таблицы базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166

Ввод информации в базу данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168

Безопасный ввод данных из формы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174

Законченная форма для ввода записей в базу данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176

Извлечение информации из базы данных . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .179

Изменение формата извлекаемых строк таблицы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .183

Безопасное извлечение данных для формы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185

Законченная форма для извлечения записей из базы данных . . . . . . . . . . . . . . . . . . . . . . .187

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .192

Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .193

Глава 9. Манипулирование файлами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195

Представление о полномочиях доступа к файлам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .195

Чтение и запись всего содержимого файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196

Чтение из файла . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196

Запись в файл . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197

Частичное чтение и запись файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .198

Манипулирование файлами формата CSV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .201

Проверка полномочий доступа к файлам . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .204

Выявление ошибок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .205

Санобработка предоставляемых извне путей к файлам . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209

Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210

Глава 10. Сохранение сведений о пользователях в cookie-файлах и сеансах . . . . . . .212

Манипулирование cookie-файлами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .213

Активизация сеансов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .217

Сохранение и извлечение информации . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .218

Конфигурирование сеансов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221

Регистрация и идентификация пользователей . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223

Причины для размещения вызовов функций setcookie() session_start() вначале страницы .230

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231

Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232

Глава 11. Взаимодействие с другими веб-сайтами и веб-службами . . . . . . . . . . . . . . . . .233

Простой доступ no URL с помощью функций манипулированияфайлами . . . . . . . . . . . . . . . .233

Универсальный доступ по URL с помощью расширения cURL . . . . . . . . . . . . . . . . . . . . . . . . .238

Извлечение данных по заданному URL методом GET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .238

Извлечение данных по заданному URL методом POST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .241

Применение cookie-файлов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242

Извлечение данных по HTTPS URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245

Обслуживание запросов API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248

Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249

Глава 12. Отладка кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250

Управление выводом сообщений об ошибках . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .250

Устранение синтаксических ошибок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .251

Проверка данных в программе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254

Добавление операторов вывода отладочной информации . . . . . . . . . . . . . . . . . . . . . . . . . . . .255

Применение отладчика . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258

Обработка неперехватываемых исключений . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263

Упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .264

Глава 13. Тестирование: проверка правильности работы программы . . . . . . . . . . . . . . . .266

Установка PHPUnit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .266

Написание тестов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .267

Изолирование тестируемого кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .270

Разработка посредством тестирования . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .273

Дополнительные сведения о тестировании . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .275

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276

Упражнение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276

Глава 14. Надлежащие нормы практики в программотехнике . . . . . . . . . . . . . . . . . . . . . . . .278

Контроль версий исходного кода . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278

Отслеживание ошибок . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279

Среды и разработка . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .280

Масштабирование в перспективе . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .281

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .282

Глава 15. Манипулирование датами и временем . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284

Отображение даты или времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284

Синтаксический анализ даты и времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .288

Расчет даты и времени . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .290

Манипулирование часовыми поясами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291

Глава 16. Управление пакетами . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293

Установка системы Composer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293

Ввод пакета в программу на РНР . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293

Поиск пакетов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295

Дополнительные сведения о системе Composer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .296

Глава 17. Отправка сообщений по электронной почте . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298

Библиотека Swift Mailer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300

Глава 18. Каркасы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301

Laravel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302

Symfony . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .303

Zend Framework . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .305

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306

Глава 19. Применение РНР в режиме командной строки . . . . . . . . . . . . . . . . . . . . . . . . . . . .308

Написание консольных программ на РНР . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308

Применение веб-сервера, встроенного в РНР . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .310

Выполнение цикла РНР REPL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .311

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .312

Глава 20. Интернационализация и локализация . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314

Манипулирование текстом . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .314

Сортировка и сравнение . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .316

Локализация выводимых результатов . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .319

Приложение А. Установка и конфигурирование интерпретатора РНР . . . . . . . . . . . . . . . . .320

Применение интерпретатора РНР, предоставляемого поставщи-ком услуг веб-хостинга .320

Установка интерпретатора РНР . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .320

Установка интерпретатора РНР в Mac OS X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .321

Установка интерпретатора РНР в Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322

Установка интерпретатора PHP в Windows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322

Видоизменение директив конфигурации РНР . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .322

Резюме . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329

Приложение Б. Ответы на упражнения . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330

Глава 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330

Упражнение 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330

Упражнение 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330

Упражнение 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330

Упражнение 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331

Упражнение 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331

Глава 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331

Упражнение 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .331

Упражнение 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .332

Упражнение 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .332

Упражнение 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .332

Глава 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .332

Упражнение 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .332

Упражнение 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .332

Упражнение 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .333

Упражнение 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334

Глава 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335

Упражнение 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .335

Упражнение 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336

Упражнение 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336

Упражнение 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336

Упражнение 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337

Глава 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337

Упражнение 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337

Упражнение 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337

Упражнение 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338

Упражнение 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .338

Глава 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339

Упражнение 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .339

Упражнение 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340

Упражнение 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .340

Упражнение 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .342

Упражнение 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .347

Глава 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .347

Упражнение 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .347

Упражнение 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .348

Упражнение 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .350

Упражнение 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .353

Глава 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356

Упражнение 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .356

Упражнение 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .357

Упражнение 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .358

Упражнение 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .358

Упражнение 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .360

Глава 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361

Упражнение 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361

Упражнение 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .361

Упражнение 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .362

Упражнение 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .364

Глава 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .367

Упражнение 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .367

Упражнение 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .368

Упражнение 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .368

Упражнение 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .368

Глава 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .369

Упражнение 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .369

Упражнение 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .370

Упражнение 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .370

Упражнение 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .371

Глава 13 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .372

Упражнение 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .372

Упражнение 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .372

Упражнение 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .374

Предметный указатель....377

Она будет полезной разным категориям читателей, включая следующие:

  • Любители, которым требуется создать интерактивный веб-сайт для себя, своей семьи или общественной организации.
  • Разработчики или проектировщики, которым требуется подключаемый модуль или расширение для распространенного программного обеспечения, написанного на РНР (например, Drupal, WordPress или MediaWiki).
  • Дизайнеры веб-страниц, которым требуется более тесная связь с коллегами-разработчиками.
  • Программирующие на JavaScript, которым требуется писать серверные программы, дополняющие их клиентский код.
  • Программирующие на Perl, Python или Ruby, которым требуется быстро освоить РНР.
  • Все, кому требуется простое и понятное введение в один из самых распространенных языков  программирования, предназначенных для создания динамических веб-сайтов.

Постепенное изучение РНР и доступный синтаксис делает этот язык идеальным “преддверием” для создателей веб-сайтов без специальной технической подготовки. Эта книга адресована тем, кто проявляет интерес к веб-разработке, обладает достаточной сообразительностью, но не имеет необходимой технической подготовки, а также программирующим на других языках и стремящимся овладеть РНР.Если программирование для вас совершенно внове и вы собираетесь построить свой первый интерактивный веб-сайт, значит, вы выбрали нужную книгу. В ее начальных главах дается постепенное введение в синтаксис языка РНР и основные понятия программирования на компьютере применительно к РНР. Поэтому изучайте материал этой книги с самого начала, постепенно продвигаясь вперед.


Похожее:

Список отзывов:

Нет отзывов к книге.