RUSSIAN

PHP 5

Book information

Publisher
БХВ-Петербург
Year
2005
ISBN
5-94157-245-X
Language
russian
Format
DJVU
Filesize
12 MB (12738397 bytes)
Pages
1121\1121
Library
homelab SpecialStorage
Time added
2009-07-20 03:45:11

Description

Книга состоит из 7 частей и 47 глав. Непосредственное описание языка PHP начинается с части III. Это объясняется необходимостью прежде узнать кое-что о CGI (Common Gateway Interface, общий шлюзовой интерфейс) — часть I, а также вы¬брать подходящий инструментарий и Web-сервер для программирования — часть II. В части IV разобраны наиболее полезные стандартные функции языка. Часть V посвящена новым объектно-ориентированным возможностям PHP 5, а часть VI — работе с XML, мощным средством, без которого сейчас обходится редкий сайт. Наконец, часть VII посвящена различным приемам программирования на PHP с множеством примеров. Предисловие......Page 29 Для кого написана эта книга......Page 30 О чем эта книга......Page 31 Часть I......Page 32 Часть III......Page 33 Часть VI......Page 34 Листинги......Page 35 Предметный указатель......Page 36 Как создавалась книга......Page 37 Благодарности......Page 38 ЧАСТЬ I. ОСНОВЫ WEB-ПРОГРАММИРОВАНИЯ......Page 41 Протоколы передачи данных......Page 43 Семейство TCP/IP......Page 45 IP-адрес......Page 46 Доменное имя......Page 47 Порт......Page 49 Установка соединения......Page 50 Сервер......Page 51 Сетевой демон, сервис, служба......Page 52 Виртуальный хост......Page 53 Сайт......Page 54 Web-программирование......Page 55 World Wide Web и URL......Page 56 Путь к странице......Page 57 Резюме......Page 58 Что такое CGI?......Page 59 Секреты URL......Page 60 Заголовки запроса и метод GET......Page 61 GET......Page 62 Host......Page 63 Referer......Page 64 Эмуляция браузера через telnet......Page 65 Метод POST......Page 66 Что такое кодировка символов?......Page 67 Пример сбойной конфигурации......Page 69 Что такое формы и для чего они нужны?......Page 70 Использование формы......Page 71 Метод POST и формы......Page 73 Кодировка входных данных......Page 74 Резюме......Page 75 Язык С......Page 76 Компиляция программ......Page 77 Заголовок кода ответа......Page 78 Pragma......Page 79 Server......Page 80 Примеры CGI-сценариев на С......Page 81 Переменные окружения......Page 82 Передача параметров методом GET......Page 84 Передача параметров методом POST......Page 85 Расшифровка URL-кодированных данных......Page 86 Формы......Page 89 Текстовое поле (text)......Page 90 Скрытое текстовое поле (hidden)......Page 91 Независимый переключатель (checkbox)......Page 92 Кнопка отправки формы (submit)......Page 93 Тег — многострочное поле ввода текста......Page 94 Списки множественного выбора (multiple)......Page 95 HTML-сущности......Page 96 Формат данных......Page 97 Тег загрузки файла (file)......Page 99 Что такое cookies и "с чем их едят"?......Page 100 Установка cookie......Page 102 Получение cookies из браузера......Page 103 Пример программы для работы с cookies......Page 104 Авторизация......Page 105 Резюме......Page 106 ЧАСТЬ II. ВЫБОР И НАСТРОЙКА ИНСТРУМЕНТАРИЯ......Page 107 Традиционный процесс отладки сайта......Page 109 Почему Apache?......Page 110 Получение документации......Page 111 Создание виртуального диска......Page 112 Установка Apache......Page 113 Настройка файла конфигурации Apache......Page 114 Запуск и остановка......Page 117 Устранение неполадок......Page 118 Проверка SSI......Page 119 Параметры хостов......Page 120 Apache для Windows и безопасность......Page 124 Безопасность......Page 125 Пример уязвимого скрипта......Page 126 Заключительные слова о безопасности......Page 127 Резюме......Page 128 Установка PHP......Page 129 Получение документации......Page 130 Консольная версия PHP......Page 131 Библиотеки расширения......Page 132 Конфигурирование PHP......Page 133 Конфигурирование расширений......Page 134 Настройка Apache для работы с PHP......Page 135 Установка PHP в виде модуля сервера......Page 136 Тестирование PHP......Page 139 Получение дистрибутива......Page 140 Настройка параметров сервера......Page 141 Запуск и остановка......Page 143 Тестирование MySQL......Page 144 Просмотр истории обращения к файлам......Page 145 Просмотр заголовков HTTP......Page 146 Традиционная отладка PHP-сценариев......Page 148 Интерактивный отладчик......Page 149 Настройка PHPEd......Page 150 "Слушатель" отладчика......Page 151 Интерактивная оболочка отладчика......Page 153 Тестирование PHPEd......Page 155 Ссылки......Page 156 Резюме......Page 157 Что такое Денвер?......Page 158 Дополнительные пакеты расширения......Page 159 Подготовка к работе с сетью......Page 160 Пользователю Windows 95......Page 161 Инсталляция......Page 162 Работа с виртуальными хостами......Page 164 Проблемы с контроллером удаленного доступа......Page 166 Вопросы и ответы......Page 167 Резюме......Page 168 PHP 5 как CGI-приложение......Page 169 Загрузка дистрибутивов......Page 170 Получение дистрибутива Unix......Page 171 Что такое виртуальная машина?......Page 172 Загрузка и установка VMware Workstation......Page 173 Создание виртуальной машины......Page 174 Исправление ошибки VMware Workstation......Page 176 Форматирование виртуального диска......Page 177 Установка Midnight Commander......Page 178 Настройка сети......Page 179 Загрузка ОС......Page 181 Проверка сети......Page 182 Использование FTP-доступа......Page 183 Использование дискет......Page 184 Перенос файлов......Page 185 Доступ к виртуальным дискам......Page 187 Сервис Shared Folders......Page 188 Монтирование дисков в Unix......Page 189 Компиляция программ......Page 190 Распаковка дистрибутивов......Page 191 Компиляция библиотеки libxslt......Page 192 Компиляция PHP 5......Page 193 Подключение PHP на машине хостинг-провайдера......Page 194 Сводка команд Unix......Page 195 Ссылки......Page 197 Резюме......Page 198 ЧАСТЬ III. ОСНОВЫ ЯЗЫКА PHP......Page 199 Глава 8. Характеристика языка PHP......Page 201 Основные термины......Page 202 Как работает PHP......Page 203 Достоинства и недостатки интерпретатора......Page 204 PHP и СУБД......Page 205 PHP версии 5......Page 206 Пример PHP-программы......Page 207 Использование PHP в Web......Page 211 Резюме......Page 212 Переменные......Page 213 double (вещественное число)......Page 214 resource (ресурс)......Page 215 Присвоение значения......Page 216 Уничтожение......Page 217 Определение типа переменной......Page 218 Оператор присваивания......Page 219 Жесткие ссылки......Page 220 Символические ссылки......Page 221 Ссылки на объекты......Page 222 Некоторые условные обозначения......Page 223 Предопределенные константы......Page 225 Проверка существования константы......Page 226 Отладочные функции......Page 227 Резюме......Page 229 Выражения......Page 230 Логические выражения......Page 231 Строка в кавычках......Page 232 Вызов внешней программы......Page 234 Строковые операции......Page 235 Операции инкремента и декремента......Page 236 Особенности операторов == и !=......Page 237 Сравнение сложных переменных......Page 238 Операция эквивалентности......Page 239 Логические операции......Page 240 Операция отключения предупреждений......Page 241 Особенности оператора @......Page 242 Противопоказания к использованию......Page 243 Резюме......Page 244 Передача данных командной строки......Page 245 Формы......Page 247 Трансляция полей формы......Page 248 Трансляция cookies......Page 250 Обработка списков......Page 251 Обработка массивов......Page 252 Режим register_globals......Page 253 Второй пример уязвимости......Page 254 Порядок трансляции переменных......Page 255 Особенности флажков checkbox......Page 256 Резюме......Page 257 Инструкция if-else......Page 258 Использование альтернативного синтаксиса......Page 259 Цикл с постусловием do-while......Page 260 Универсальный цикл for......Page 261 Инструкции break и continue......Page 262 Нетрадиционное использование do-while и break......Page 263 Цикл foreach......Page 264 Конструкция switch-case......Page 265 Инструкции require и include......Page 266 Суть проблемы......Page 267 Другие инструкции......Page 269 Резюме......Page 270 Глава 13. Ассоциативные массивы......Page 271 Создание массива "на лету". Автомассивы......Page 272 Оператор list()......Page 273 Оператор аrrау() и многомерные массивы......Page 274 Операции над массивами......Page 275 Слияние массивов......Page 276 Обновление элементов......Page 277 Перебор списка......Page 278 Недостатки косвенного перебора......Page 279 Старый способ перебора......Page 280 Ссылочный синтаксис foreach......Page 281 Списки и строки......Page 282 Сериализация......Page 283 Резюме......Page 284 Глава 14. Функции и области видимости......Page 285 Пример функции......Page 286 Инструкция return......Page 287 Объявление и вызов функции......Page 288 Передача параметров по ссылке......Page 289 Переменное число параметров......Page 291 Глобальные переменные......Page 293 Массив $GLOBALS......Page 294 Как работает инструкция global......Page 295 Статические переменные......Page 296 Факториал......Page 297 Пример функции: dumper()......Page 298 Вложенные функции......Page 299 Условно определяемые функции......Page 300 Эмуляции функции virtual()......Page 301 Передача функций "по ссылке"......Page 302 Использование call_user_func_array()......Page 303 Возврат функцией ссылки......Page 304 Технология отложенного копирования......Page 305 Несколько советов по использованию функций......Page 307 Резюме......Page 308 ЧАСТЬ IV. СТАНДАРТНЫЕ ФУНКЦИИ PHP......Page 309 Конкатенация строк......Page 311 О сравнении строк......Page 312 Особенности strpos()......Page 313 Работа с одиночными символами......Page 314 Отрезание пробелов......Page 315 Базовые функции......Page 316 Работа с подстроками......Page 317 Замена......Page 318 Подстановка......Page 319 Преобразования символов......Page 321 Изменение регистра......Page 323 Установка локали (локальных настроек)......Page 324 Преобразование кодировок......Page 325 Функции форматных преобразований......Page 326 Форматирование текста......Page 328 Работа с бинарными данными......Page 329 Хэш-функции......Page 331 Резюме......Page 333 Лексикографическая и числовая сортировки......Page 334 Сортировка по ключам......Page 335 Пользовательская сортировка по ключам......Page 336 Переворачивание массива......Page 337 "Естественная" сортировка......Page 338 Сортировка списка......Page 339 Перемешивание списка......Page 340 Ключи и значения......Page 341 Работа с подмассивами......Page 342 Работа со стеком и очередью......Page 343 Переменные и массивы......Page 344 Применение и шаблонах......Page 346 Пересечение......Page 347 Объединение......Page 348 Резюме......Page 349 Встроенные константы......Page 350 Случайные числа......Page 351 Перевод в различные системы счисления......Page 354 He-числа......Page 355 Тригонометрия......Page 356 Резюме......Page 357 О текстовых и бинарных файлах......Page 358 Открытие файла......Page 359 Различия текстового и бинарного режимов......Page 361 Прямые и обратные слэши......Page 362 Безымянные временные файлы......Page 363 Чтение и запись......Page 364 Построчные чтение/запись......Page 365 Чтение CSV-файла......Page 366 Положение указателя текущей позиции......Page 367 Работа с путями......Page 368 Манипулирование целыми файлами......Page 370 Чтение и запись целого файла......Page 371 Чтение INI-файла......Page 372 Другие функции......Page 373 Рекомендательная и жесткая блокировки......Page 374 Исключительная блокировка......Page 375 Разделяемая блокировка......Page 379 Блокировки с запретом "подвисання"......Page 380 Пример счетчика......Page 381 Резюме......Page 382 Идентификатор пользователя......Page 383 Идентификатор группы......Page 384 Права доступа......Page 385 Числовое представление прав доступа......Page 386 Особенности каталогов......Page 387 Защищенный от записи файл......Page 388 Права доступа на РНР-сценарии......Page 389 Права доступа......Page 390 Определение атрибутов файла......Page 391 Специальные функции......Page 392 Определение возможности доступа......Page 393 Символические ссылки......Page 394 Жесткие ссылки......Page 395 Резюме......Page 396 Манипулирование каталогами......Page 397 Работа с записями......Page 398 Пример: печать дерева каталогов......Page 399 Получение содержимого каталога......Page 400 Резюме......Page 401 Запуск утилит......Page 402 Экранирование командной строки......Page 404 Режим safe_mode......Page 405 Каналы......Page 406 Открытие канала......Page 407 Взаимная блокировка (deadlock)......Page 408 Резюме......Page 409 Представление времени в формате timestamp......Page 410 Большие вещественные числа......Page 411 Построение строкового представления даты......Page 412 Построение timestamp......Page 414 Григорианский календарь......Page 416 Проверка даты......Page 417 Календарик......Page 418 Хранение абсолютного времени......Page 420 Перевод времени......Page 421 Окончательное решение задачи......Page 422 Резюме......Page 423 Информационные функции......Page 424 Настройка параметров PHP......Page 425 CGI-версия PHP......Page 426 Создание переадресации для интерпретатора PHP......Page 427 Переадресация в Unix......Page 428 Некоторые популярные директивы......Page 429 Директивы контроля ошибок......Page 434 Установка режима вывода ошибок......Page 435 Оператор отключения ошибок......Page 436 Предостережения......Page 437 Перехват ошибок......Page 438 Проблемы с оператором @......Page 440 Стек вызовов функций......Page 441 Принудительное завершение программы......Page 442 Финализаторы......Page 443 Выполнение кода......Page 444 Генерация функций......Page 446 Резюме......Page 448 Пример первый......Page 449 Пример третий......Page 450 Пример четвертый......Page 451 Терминология......Page 452 Языки регулярных выражений......Page 453 Сопоставление......Page 454 Сопоставление с заменой......Page 455 Ограничители......Page 456 Отмена действия спецсимволов......Page 457 Простые символы (литералы)......Page 458 Альтернативы......Page 459 Отрицательные классы......Page 460 Одно или более совпадений......Page 461 Мнимые символы......Page 462 Группирующие скобки......Page 463 "Карманы"......Page 464 Использование карманов в функции замены......Page 465 Использование карманов в функции сопоставления......Page 466 "Жадность" квантификаторов......Page 467 Рекуррентные структуры......Page 468 Модификатор /i: игнорирование регистра......Page 469 Модификатор /m: многострочность......Page 470 Модификатор /е: выполнение PHP-программы при замене......Page 471 Позитивный просмотр вперед......Page 472 Позитивный просмотр назад......Page 473 Поиск совпадений......Page 474 Замена совпадений......Page 477 Выделение всех уникальных слов из текста......Page 479 Экранирование символов......Page 480 Фильтрация массива......Page 481 Преобразование адресов e-mail......Page 482 Преобразование гиперссылок......Page 483 Резюме......Page 484 Проблемы с заголовками......Page 485 Запрет кэширования......Page 486 Получение выведенных заголовков......Page 487 Немного теории......Page 488 Установка cookie......Page 489 Массивы и cookie......Page 490 SSI и функция virtual()......Page 491 Эмуляция функции virtual()......Page 492 Разбиение и "склеивание" QUERY_STR1NG......Page 493 Разбиение и "склеивание" URL......Page 494 Пример......Page 496 Резюме......Page 497 Сеть и файловые функции......Page 498 Работа с сокетами......Page 499 "Эмуляция" браузера......Page 500 Функции для работы с DNS......Page 501 Преобразование IP-адреса в доменное имя и наоборот......Page 502 Получение МХ-записи......Page 503 Резюме......Page 505 Формат электронного письма......Page 506 Отправка письма......Page 507 Почтовые шаблоны......Page 508 Расщепление заголовков......Page 509 Анализ заголовков......Page 510 Русскоязычные кодировки......Page 511 Кодировка заголовков......Page 512 Кодирование тела письма......Page 514 Динамическая смена кодировки......Page 515 Активные шаблоны......Page 516 Настройки PHP......Page 518 Резюме......Page 519 Что такое база данных?......Page 520 Неудобство работы с файлами......Page 521 Архитектура MySQL......Page 522 Порядок работы с базой данных......Page 523 Соединение с сервером......Page 524 Выполнение запросов к базе данных......Page 525 Автоматизация подключения к СУБД......Page 526 Язык запросов СУБД MySQL......Page 528 CREATE TABLE: создание таблицы......Page 529 Тилы полей......Page 530 DROP TABLE: удаление таблицы......Page 533 SELECT: поиск и выборка записей......Page 534 Получение уникальных значений столбцов......Page 535 Получение результата......Page 536 Преобразование result-set в двумерный массив......Page 537 Передвижение по результирующему набору......Page 538 Параметры результата......Page 539 Информация о результате......Page 540 Пример использования функций......Page 541 Информация о таблицах и полях......Page 542 AUTО_INCREMENT. уникальные идентификаторы......Page 543 Плотное следование идентификаторов......Page 544 Индексы и производительность БД......Page 545 Как "работают" индексы......Page 546 Недостатки индексов......Page 547 Экранирование спецсимволов......Page 548 Шаблоны запросов и placeholders......Page 549 Пример: гостевая книга......Page 552 Резюме......Page 556 Глава 29. Управление сессиями......Page 557 Зачем нужны сессии?......Page 558 Механизм работы сессий......Page 559 Пример использования сессии......Page 560 Явное использование константы SID......Page 562 Неявное изменение гиперссылок......Page 563 Неявное изменение формы......Page 564 Использовать ли cookies в сессиях?......Page 565 Имя группы сессий......Page 566 Идентификатор сессии......Page 567 Стоит ли изменять группу сессий?......Page 568 Обзор обработчиков......Page 569 Регистрация обработчиков......Page 570 Пример: переопределение обработчиков......Page 571 Регистрация глобальных переменных......Page 573 Резюме......Page 574 Глава 30. Работа с изображениями......Page 575 Универсальная функция getimagesize()......Page 576 Пример создания изображения......Page 578 Создание изображения......Page 579 Определение параметров изображения......Page 580 Сохранение изображения......Page 581 Работа с цветом в формате RGB......Page 582 Получение ближайшего в палитре цвета......Page 583 Эффект прозрачности......Page 584 Использование полупрозрачных цветов......Page 585 Копирование изображений......Page 586 Выбор пера......Page 588 Дуга сектора......Page 589 Многоугольники......Page 590 Работа с пикселами......Page 591 Загрузка шрифта......Page 592 Работа со шрифтами TrueType......Page 593 Проблемы с русскими буквами......Page 594 Коррекция функции imageTtfBBox()......Page 595 Пример......Page 597 Резюме......Page 599 ЧАСТЬ V. ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ НА PHP......Page 601 Глава 31. Организация библиотек......Page 603 Корневой каталог библиотек......Page 604 Несколько путей поиска......Page 605 Преимущества использования путей подключения......Page 606 Проблема именования функций......Page 607 Пространства имен......Page 608 Соглашение 1: классы вместо пространств имен......Page 609 Константы в библиотеке......Page 610 Сошлашение 2: формат библиотеки......Page 611 Соглашение 3: использование подкаталогов......Page 613 Автоматическая загрузка классов......Page 614 Библиотека поддержки автозагрузки......Page 615 PEAR: преобразование имени масса в имя файла......Page 617 Неприятная особенность require_once......Page 621 Собираем все вместе......Page 622 Пример использования всех библиотек......Page 623 Недостатки глобальных переменных......Page 624 Использование функции......Page 625 Интерфейс библиотеки......Page 626 Наследование и расширение модулей......Page 627 Резюме......Page 629 Новые возможности PHP 5......Page 630 Класс как тип данных......Page 631 Создание нового класса......Page 632 Отличие классов от библиотек......Page 633 Доступ к свойствам объекта......Page 634 Доступ к методам......Page 635 Создание нескольких объектов......Page 636 Перегрузка преобразования в строку......Page 637 Конструктор......Page 638 Параметры по умолчанию......Page 639 Вопрос освобождения ресурсов......Page 640 Описание деструктора......Page 642 Алгоритм сбора мусора......Page 644 Циклические ссылки......Page 645 Проблема циклических ссылок......Page 647 Права доступа к членам класса......Page 648 Private: доступ только из методов класса......Page 649 Неявное объявление свойств......Page 650 Пример: счетчик объектов......Page 651 Пример: кэш ресурсен......Page 652 Общие рекомендации......Page 653 Перехват обращений к членам класса......Page 654 Клонирование объектов......Page 656 Переопределение операции клонирования......Page 657 Перехват сериализации......Page 658 Резюме......Page 659 Глава 33. Наследование и виртуальные методы......Page 660 Метод включения......Page 661 Недостатки метода......Page 662 Несовместимость типов......Page 663 Наследование......Page 664 Доступ к методом базового класса......Page 665 Финальные методы......Page 666 Полиморфизм......Page 667 Абстрагирование......Page 668 Виртуальные методы......Page 670 Абстрактные классы и методы......Page 673 Уточнение типа в функциях......Page 675 Обратное преобразование типа......Page 676 Интерфейсы......Page 677 Множественная реализация интерфейсов......Page 678 Резюме......Page 679 Что такое ошибка?......Page 681 Виды ошибок......Page 682 Несерьезные ошибки......Page 683 Возврат недопустимого значения......Page 684 Вызов функции-обработчика......Page 685 Базовый синтаксис......Page 686 Инструкция throw......Page 687 Раскрутка стека......Page 688 Исключения и деструкторы......Page 689 Исключения и set_error_handler()......Page 690 Классификация и наследование......Page 691 Базовый класс Exception......Page 692 Использование интерфейсов......Page 694 Неподдерживаемая конструкция try...finally......Page 696 Перехват всех исключений......Page 697 Серьезность "несерьезных" ошибок......Page 699 Пример......Page 701 Код библиотеки PHP_Exceptionizer......Page 702 Иерархия исключений......Page 705 Перспективы......Page 706 Резюме......Page 707 Неявный вызов метода......Page 708 Неявный список аргументов......Page 709 Использование неявных аргументов......Page 710 Аппарат отражений......Page 711 Функция: Reflection Function......Page 712 Параметр функции: Reflection Parameter......Page 714 Класс: ReflectionClass......Page 735 Наследование и отражения......Page 717 Метод класса: ReflectionMethod......Page 719 Библиотека расширения: Reflection Extension......Page 720 Итераторы......Page 721 Определение собственного итератора......Page 722 Как PHP обрабатывает итераторы......Page 725 Виртуальные массивы......Page 726 Резюме......Page 729 ЧАСТЬ VI. XML В PHP 5......Page 731 Глава 36. Фундамент XML......Page 733 XML-расширения языка PHP......Page 734 Основные понятия XML......Page 736 Типы XML-документов......Page 743 Резюме......Page 745 Перечень стандартов DOM......Page 746 Кодировки......Page 748 Класс domDocument, загрузка и выгрузка XML-документов......Page 752 Обобщенный класс domNode......Page 756 Класс NodeList......Page 761 Класс NamedNodeMap......Page 764 Пример программы отображения свойств узлов XML-документа......Page 766 Свойства объектов подклассов класса domNode......Page 776 Свойства класса domDocument......Page 778 Свойства класса domDocumentType......Page 782 Свойства класса domEntity......Page 784 Свойства класса domElement......Page 786 Свойства класса domDocumentFragment......Page 788 Свойства класса domAttr......Page 789 Свойства класса domProcessInstruction......Page 791 Свойства класса domCharacterData......Page 793 Свойства класса domText......Page 794 Свойства класса domCDATASection......Page 795 Свойства класса domComment......Page 796 Построение и корректировка XML-документа......Page 797 Создание экземпляра класса стандарта DOM......Page 798 Методы класса domElement для работы с атрибутами......Page 802 Методы класса domCharacterData для работы с текстом......Page 804 Корректировка дерева узлов......Page 808 Выборка узлов из документа......Page 815 "Живые" объекты......Page 817 Резюме......Page 822 Пространство имен......Page 823 Не очень простой пример......Page 824 Пересечения имен......Page 832 Использование пространства имен в атрибутах......Page 837 Дополнительные свойства стандарта DOM2......Page 838 Методы создания элементов и атрибутов в указанном пространстве имен......Page 839 Методы выбора элементов по имени......Page 845 Методы доступа к текущим соотношениям префиксов и областей имен......Page 846 Интерфейс domImplementation......Page 850 Перенос узлов между документами......Page 852 Обработка исключительных ситуаций в DOM......Page 854 Резюме......Page 859 Модули стандарта DOM......Page 860 Дополнительные интерфейсы и методы стандарта DOM3......Page 864 Свойства и методы класса domDocument......Page 865 Методы обработки HTML-документов класса domDocument......Page 866 Методы loadHTMLFile(), loadHTML()......Page 867 Методы saveHTML(), saveHTMLFile()......Page 872 Поддержка различных кодировок в методах обработки HTML-документов......Page 873 Резюме......Page 875 Базовые понятия языка XPath......Page 876 Программа отображения результата XPath-запроса......Page 878 Структура запроса XPath......Page 885 Оси......Page 886 Ось child......Page 887 Ось descendant......Page 891 Ось descendant-or-self......Page 893 Ось self......Page 895 Ось following......Page 896 Ось attribute......Page 898 Ось parent......Page 900 Ось preceding-sibling......Page 902 Функции узлов......Page 905 Строковые функции......Page 907 Арифметические функции......Page 910 Поддержка областей имен в языке XPath......Page 911 Поддержка областей имен в функциях узлов......Page 913 Привязка префиксов запроса......Page 914 Резюме......Page 919 Простой пример......Page 920 Загрузка и сохранение XML-документов......Page 922 Доступ к узлам документа......Page 923 Доступ к атрибутам узла в порядке следования......Page 924 Доступ к дочерним узлам по имени......Page 926 Доступ к дочерним узлам в порядке следования......Page 928 Доступ к элементам по выражению языке XPath......Page 929 Корректировка документа......Page 930 Резюме......Page 931 Общие сведения о языке XSLT......Page 932 Пример XSLT-трансформации......Page 936 Программа songs.xsl (нулевой уровень)......Page 938 Программа song.xsl (первый уровень)......Page 942 Программы второго уровня......Page 945 Программы третьего уровня......Page 949 Объекты и методы поддержки XSLT в PHP 5......Page 950 Метод transformtoXML()......Page 951 Метод transformtoURI()......Page 955 Метод transformtoDOC()......Page 956 Форматы выходных документов......Page 960 Вызов PHP-функций из PHP-программ......Page 964 Поддержка расширений XSLT (EXSLT)......Page 968 Модуль Common......Page 971 Модуль Math......Page 976 Модуль Sets......Page 978 Модуль Functions......Page 981 Модуль Dates and Times......Page 984 Модуль Strings......Page 989 Модуль Random......Page 992 Резюме......Page 993 ЧАСТЬ VII. ПРИЕМЫ ПРОГРАММИРОВАНИЯ НА PHP 5......Page 995 Глава 43. Загрузка файлов на сервер......Page 997 Закачка файлов и безопасность......Page 998 Простые имена полей закачки......Page 999 Получение закачанного файла......Page 1001 Пример: фотоальбом......Page 1002 Сложные имена полей......Page 1003 Резюме......Page 1005 Внешний редирект......Page 1006 Внутренний редирект......Page 1007 Самопереадресация......Page 1009 Резюме......Page 1012 Функции перехвата......Page 1013 Стек буферов......Page 1014 Недостатки "ручного" перехвата......Page 1015 Использование объектов и деструкторов......Page 1016 Класс для перехвата выходного потока......Page 1017 Недостатки класса......Page 1019 Обработчики буферов......Page 1020 GZip-сжатие......Page 1021 Печать эффективности сжатия......Page 1022 Резюме......Page 1024 Первый способ: "вкрапление" HTML в код......Page 1025 Второй способ: вставка кода в шаблон......Page 1027 Третий способ: Model-View-Controller......Page 1028 Контроллер (Controller)......Page 1029 Модель (Model)......Page 1031 Взаимодействие элементов......Page 1032 Активные и пассивные шаблоны......Page 1033 Активные шаблоны......Page 1034 Пассивные шаблоны......Page 1035 Недостатки MVC......Page 1037 Блочная структура Web-страниц......Page 1039 Взаимодействие элементов......Page 1040 Шаблон (View)......Page 1041 Добавление записи......Page 1044 Показ новостей......Page 1045 Проверка корректности входных данных......Page 1046 Полномочия Компонентов......Page 1047 Глоссарий......Page 1048 Резюме......Page 1050 Глава 47. Шаблонизатор......Page 1051 Проблемы адресации......Page 1052 "Расщепление" шаблона......Page 1053 Описание шаблонизатора......Page 1054 Соглашения по именованию директорий......Page 1055 Карта демонстрационного сайта......Page 1056 Макет страниц (Layout)......Page 1057 Взаимодействие элементов......Page 1059 Файл Блоков (Block file)......Page 1060 Наследование Блоков подраздела......Page 1062 Служебные Блоки (прагмы)......Page 1063 Трансляция в код на PHP......Page 1067 Использование Smarty в MVC-схеме......Page 1068 Макет с использованием Smarty-вставок......Page 1070 Одиночные и парные теги......Page 1073 Модификаторы......Page 1074 Ветвление: {if}...{else}...{/if}......Page 1075 Удаление пробелов: {strip}...{/strip}......Page 1076 Циклическая подстановка: {cycle}......Page 1077 Подключение компонента: {t_component}...{/t_component}......Page 1078 Интерфейс Компонента......Page 1079 Локальность результата работы Компонента......Page 1081 Создание локальных переменных; {t_local}...{/t_local}......Page 1082 Преобразование URI в абсолютный: {t_abs}...{/t_abs}......Page 1083 Префильтры Smarty......Page 1084 Добавление собственных Smarty-тегов в шаблонизатор......Page 1085 Получение списка Блоков: Templier_Blocks......Page 1086 Улучшенное отображение ошибок......Page 1087 Автозаполнение форм......Page 1089 Статистика GZip-сжатия и времени выполнения скрипта......Page 1092 Обработчики Apache......Page 1093 Шаблон......Page 1095 Компонент: добавление записи......Page 1097 Компонент: просмотр гостевой книги......Page 1099 Применимость шаблонизатора......Page 1100 Виртуальные пути и mod_rewrite......Page 1101 Глоссарий......Page 1102 Резюме......Page 1103 Предметный указатель......Page 1104

Similar books