На главную | Где купить | Авторам и заказчикам | Вакансии | Реклама | Издательство | Каталог | Статьи наших авторов | Контакты | Прайс листы

PHP 5 на примерах

Автор Голышев С., Кузнецов А., Симдянов И.
Название PHP 5 на примерах
Серия На примерах
ISBN 5-94157-670-6
Формат 70х100 1/16
Объем 576
Тематика
Оптовая цена
    Вернуться к описанию книги

Полное содержание

Введение 15
Для кого и о чем эта книга 15
Благодарности 16

Глава 1. Установка и настройка PHP 5 и Web-сервера Apache 2.0.0

17
Дистрибутивы 17
Установка Web-сервера Apache под Windows 19
Запуск и управление Apache 22
Управление Apache при помощи утилиты Apache Service Monitor 22
Управление Apache из консоли управления служб Windows 22
Управление Apache из меню Пуск 24
Управление Apache из командной строки 24
Проблемы с установкой Apache и их устранение 25
Сервер Apache не установился, как служба Windows, автоматически 25
Установка Apache, как службы Windows, вручную 25
Удаление службы Apache из списка служб Windows 26
Конфигурирование Apache 27
Пути к файлам 27
Директивы файла httpd.conf 27
Создание виртуальных хостов 30
Установка и настройка PHP 31
Установка PHP в качестве модуля 32
Установка PHP, как CGI-приложения 32
Директивы файла php.ini 33
Конфигурирование PHP 33
Ограничение по ресурсам 34
Обработка ошибок и ведение журнала 35
Обработка данных 37
Загрузка файлов 39
Подключение библиотек расширений 39
Подключение MySQL 39
Типичные ошибки, возникающие при установке Apache, PHP и MySQL 40
Не запускается инсталлятор Apache 40
Ошибка "Internal Server Error" при подключении PHP 41
Не исполняются PHP-скрипты 41
Сообщение "Notice: Undefined variable:" 41
Не подключается MySQL 42
Неизвестные ошибки 42

Глава 2. Приемы конфигурирования Web-сервера Apache 2

43
Особенности конфигурирования в Windows 43
Файл .htaccess 44
Синтаксис файла .htaccess 45
Индексные страницы 46
Запрет на отображение содержимого каталога при отсутствии индексного файла 47
Обработка кодов ответов Web-сервера Apache 47
Как выполнять код PHP в файлах HTML? 49
Задание кодировки файлов на сервере 50
Задание кодировки загружаемых файлов 50
Отключение директивы MultiViews 51
Запрет доступа к файлам 51
Перенаправление на другой адрес 53
Преобразование адресов 55
Защита сайта с помощью файлов .htaccess и .htpasswd 60
Создание файла с паролями 61

Глава 3. Массивы

67
Создание одномерных массивов 67
Первый способ: присвоение значений 67
Второй способ: использование конструкции array() 69
Создание многомерных массивов 70
Обход массива в цикле 71
Цикл foreach 71
Цикл for 72
Цикл while 73
Обход многомерных массивов 74
Способы сортировки элементов массивов 75
Сортировка по возрастанию 76
Сортировка по убыванию 77
Естественная сортировка 77
Основные операции с массивами 79
Поиск элемента в массиве 79
Выборка ключей массива 80
Суперглобальные массивы 81
Типы суперглобальных массивов 82
Определение IP-адреса посетителя 83
Запрет посещений с определенного IP-адреса 84
Как узнать, на какой странице я нахожусь? 85
Как узнать, с какой страницы пришел посетитель? 86
Ловим пауков, или учет пользовательских агентов 86
Поддержка нескольких языков 89
Вывод случайного элемента массива 90
Задания 91

Глава 4. Работа со строками

92
Кавычки 92
Форматирование 95
Сравнение строк 100
Поиск в тексте 101
Замена в тексте 103
Разбивка строк на подстроки 106
Работа с символами 111
Преобразование кодировок 114
Работа с URL 115
Работа с путями к файлам и каталогам 117
Работа с датой и временем 119
Хранение данных 127
Подсветка кода PHP 130
Задания 131

Глава 5. Регулярные выражения

133
Базовый синтаксис и создание регулярных выражений 133
Функции для работы с регулярными выражениями 138
Конвертация даты из формата YYYY-MM-DD в DD.MM.YYYY 142
Проверка правильности ввода е-mail 142
Проверка правильности ввода URL 143
Проверка правильности ввода имени 144
Проверка правильности ввода числа 146
Корректность ввода даты 147
Только русский текст! 148
Автоподсветка URL 148
Конвертирование тегов в стиль форума phpBB и обратно 149
Работа с HTML-тегами: извлечение параметров и текста 151
Замена прямых кавычек на парные 152
Подстановка с использованием собственных тегов форматирования 152
Подсветка синтаксиса PHP: собственная функция 153
Задания 157

Глава 6. Работа с файлами и каталогами

159
Включение файлов в документ 159
Создание файлов и работа с ними 161
Атрибуты файлов 166
Загрузка файлов на сервер 167
Загрузка файлов с сервера 171
Загрузка файла частями, или как разрезать и "склеить" файл? 172
Как посмотреть список файлов в каталоге? 173
Как определить: перед нами каталог или файл, или подсчет файлов в каталоге 176
Работа с правами доступа 177
Создание каталога 178
Удаление каталогов 179
Редактирование файлов на сервере 180
Автоматическое редактирование текстовых файлов 183
Удаление строк из середины файла 185
Случайный вывод из файла 186
Работа с индексным файлом: запись, извлечение, редактирование и удаление 187
Блокировка файла 193
Сохранение и извлечение из файла массивов и объектов 195
Работа с csv-файлами, или как загрузить данные из MS Excel 197
Задания 197

Глава 7. Плоские файлы

199
Что такое плоские файлы и для чего они нужны? 199
Создание файла 200
Заполнение файла 201
Чтение информации из файла 202
Замена записи 204
Удаление записи 205

Глава 8. Работа с MySQL

207
Типы таблиц — почему их так много? 208
Основы SQL 209
CREATE DATABASE 209
USE 211
CREATE TABLE 211
DESCRIBE 213
ALTER TABLE 213
DROP TABLE 215
DROP DATABASE 216
INSERT INTO...VALUES 216
DELETE 218
SELECT 218
UPDATE 223
SHOW 223
Соответствие шаблону (LIKE и NOT LIKE) 226
Функция COUNT 226
Соединение с базой данных — подводные камни 227
Закрытие соединения 232
Выполнение запросов 232
Как осуществить выборку? 233
Сколько строк в выборке? 238
Подробно о транзакциях 240
Проверка результатов запроса на значение NULL 243
Избежание повторных запросов 246
Полнотекстовый поиск 249
Временные таблицы 251
Удаление и выборка нескольких записей 253
Перенос данных из MySQL в dbf-формат 254
Преобразование времени 258
Перенос данных из SQL-файла в базу данных 260
Задания 261

Глава 9. Безопасное программирование Web-сайтов

262
Проверка данных, вводимых пользователем 262
Функция htmlspecialchars() 264
Межсайтовый скриптинг 265
Защита имени от подделки 266
Как просто и быстро стереть весь сайт, или загружаем файлы с исполняемым кодом 268
Необратимое шифрование MD5 — зачем? 271
Обратимое шифрование с библиотекой mcrypt 272
Если register_globals = On 273
Насколько опасны cookies? 275
Безопасная настройка PHP 277
Безопасная установка MySQL 278
Инъекционные SQL-запросы 282

Глава 10. Сессии и cookies

286
Как передать переменную из одного скрипта в другой? 286
Как проверить, включены ли cookies? 294
Защита от заполнения формы с другого сайта 295
Авторизация с помощью сессий 296
Определение посетителей online, или как отслеживать "уход" посетителей 299
Задания 302

Глава 11. Объектно-ориентированное программирование и исключения

303
Создание классов 304
Создание объектов 310
Клонирование объектов 313
Подсчет объектов или статических членов и методов 314
Обработка исключительных ситуаций 317

Глава 12. Работа с FTP

323
Установка соединения с FTP-сервером 323
Навигация по FTP-серверу 326
Работа с каталогами 328
Работа с файлами 329
Загрузка файлов на FTP-сервер 329
Переименование, удаление файлов на FTP-сервере 331
Загрузка файлов с FTP-сервера 331
Работа с правами доступа 332

Глава 13. Примеры работы с сетевыми протоколами

334
Подключение к удаленному серверу 334
Извлечение заголовков HTTP-ответа 337
Определение размера файла на удаленном хосте 340
Отправление данных методом POST 340
Создание Whois-сервиса 342
PHP и DNS 345
Подробно о кэшировании 348
Функции session_cache_limiter() и session_cache_expire() 352
Задания 353

Глава 14. Электронная почта

354
Отправка сообщений с помощью стандартной функции mail() 354
Собственная функция mail() или отправка сообщений через удаленный SMTP-сервер 358
Как узнать адреса почтовых ретрансляторов? 359
Как присоединить вложения к сообщениям и что такое спецификация MIME? 360

Глава 15. Работа с библиотеками расширений

363
Основные операции с PDF-документами 364
Открытие 364
Сохранение 364
Создание новой страницы 365
Добавление закладки 365
Работа с текстом 366
Работа со шрифтами 369
Рисование линий в PDF-документе 369
Загрузка изображения в PDF-документ 370
Вывод PDF-документа в браузер 370
Завершение работы с PDF-документом 370
Пример: рисование квадрата в PDF-документе 371
Работа с графикой. Библиотека GD 372
Функция getimagesize() 373
Функция imagecreatetruecolor() 374
Функция imagecreatefromjpeg() 374
Функция imagecreatefromgif() 374
Функция imagecreatefrompng() 374
Функция imagecopyresampled() 375
Функция imagejpeg() 375
Функция imagegif() 376
Функция imagepng() 376
Автоматическое масштабирование изображения 377
Вывод сгенерированного изображения в HTML-коде 381
Добавление текста на изображение 382
Функция imagecolorallocate() 382
Функция imagecolorallocatealpha() 382
Функция imagestring() 383
Функция imagettfbbox() 383
Функция imagettftext() 384
Построение круговой диаграммы 387
Функция imagecreatetruecolor() 387
Функция imagefilledellipse() 387
Функция imagefilledarc() 387
Построение гистограммы 390
Функция imagefilledrectangle() 390

Глава 16. Часто встречающиеся ошибки

392
Преждевременная отправка HTTP-заголовков 392
Орфографические ошибки 395
Права доступа 397
Замечания 397
Привилегии в MySQL 398

Глава 17. Разное

399
Когда необходима рекурсия? 399
Создание переменных, или как динамически формировать PHP-код 400
Символ @ — подавление вывода ошибок 402
Скрипт предзагрузки страницы 403
Время генерации страницы 404
Задержка вывода 405
Два обработчика для одной формы 406
Счетчик загрузки файлов 409
Вывод текущего курса валют 410
Постраничная навигация 411

Глава 18. Полезные советы

414
Взаимодействие с заказчиком 414
Встречают по одежке 415
Заказчик — дурак? 417
Рожденный ползать — уйди со взлетной полосы! 417
Невербальное общение 418
В любом из нас спит гений. И с каждым днем все крепче 420
Немного о виктимологии 420
Личная встреча — лишний шаг к успеху 420
Не возражайте "в лоб" 421
ЯЗВа 421
АнтиЯЗВа 422
Закон об объеме оперативной памяти 422
Закон края (закон Эббингауза) 423
Закон контрастов 423
Принцип ледокола или еще одно следствие из закона контрастов 423
Не уходите от скользких вопросов 424
Минус эмоции 425
Немного о НЛП 425
О разработке программных продуктов 428
Ни дня без кода! 428
Не занимайтесь необдуманным копированием! 428
Не пишите в стол! 429
Создавайте рабочие программы! 429
Не бойтесь отладки 429
Тестируйте приложения 430
Ориентируйтесь на пользователя! 430
Читайте книги! 430
Не забывайте про проектирование! 430
Четко оценивайте время работы над проектом! 431
Не занимайтесь взломом 431
Технические советы 432
Не стоит недооценивать PHP 433
Не пренебрегайте словами "хороший стиль программирования"! 434
Расстановка фигурных скобок и отступы 434
Пробелы вокруг символов 436
Комментарии 437
Имена переменных и функций 439
Не шутите с именами! 439
Структурируйте ваш код 441
Не делайте средствами PHP то, что можно сделать с помощью СУБД 442
Делайте свои скрипты устойчивыми к ошибкам 443
Взаимодействуйте с другими программистами 444
Не злоупотребляйте регулярными выражениями 444
Не "изобретайте велосипед" 444
Не используйте без надобности функции форматного вывода 444
Не используйте устаревшие конструкции языка 444
Приложение 1. HTML, XTML, DHTML 445
Что такое XHTML? 445
Обязательные теги 445
Новый обязательный атрибут в теге 446
Нижний регистр тегов 446
Правила вложенности тегов обязательны 446
Закрывающие теги обязательны 446
Значения атрибутов в кавычках 446
Атрибут name заменяется атрибутом id 447
Символы разметки < и & 447
Что такое DHTML? 447
Оптимизация HTML-кода 448
Чем проще — тем лучше 448
Больше пишите руками 448
Табличная верстка против верстки на слоях 449
Тестируйте с отключенными изображениями 450
Оптимизация под разные настройки экрана 450
Оптимизация под разные браузеры 451
Самые популярные браузеры 452
Проверяйте грамматику и орфографию 453
Приемы работы с HTML 453
Проблемы относительных ссылок и тег 453
Резиновый табличный дизайн 454
Тонкие рамки таблицы 455
Тонкие рамки для Internet Explorer 456
Тонкие рамки: универсальное решение 456
Тонкие рамки: использование стилей CSS 459
Применение "распорок" 459
Определяйте цвет фона 461
Точное позиционирование изображений 462
Синяя рамка на ссылках в виде изображений 464
Передача параметров при ссылке mailto 464
Коды спецсимволов 465
Метатеги 467
Взаимодействие с поисковыми системами 468
Description 468
Keywords 468
Revisit 468
Robots 469
Описание документа 470
Content-Type 470
Content-Language 470
Document-state 470
Resource-type 471
Generator 471
Author 471
Copyrigh 471
Кэширование 471
Pragma 472
Cache-Control 472
Expires 473
Переадресация 473
Refresh 473
Location 473
Приложение 2. CSS 474
Спецификации стилей 475
Применение стилей к документу HTML 476
Внедренные стили: свойство style 476
Тег