Предисловие | 29 |
Для кого предназначена эта книга | 29 |
Предположения, допущенные в данной книге | 29 |
Как устроена книга | 30 |
Дополнительная литература | 30 |
Условные обозначения | 31 |
Использование примеров кода | 32 |
Благодарности | 32 |
|
От издательства | зз |
|
Глава 1. Введение в динамическое содержимое веб-страницы | 34 |
HTTP и HTML: основы, заложенные Бернерсом-Ли | 35 |
Процедура «запрос — ответ» | 35 |
Преимущества использования PHP, MySQL, JavaScript и CSS | 38 |
PHP | 39 |
MySQL | 40 |
JavaScript | 41 |
CSS | 42 |
А теперь HTML5 | 43 |
Веб-сервер Apache | 44 |
Несколько слов о программах с открытым исходным кодом | 45 |
А теперь всё это, вместе взятое | 45 |
Вопросы | 47 |
|
Глава 2. Установка сервера, предназначенного для разработки | 49 |
Что такое WAMP, MAMP и LAMP | 50 |
Установка XAMPP в систему Windows | 50 |
Тестирование установки | 57 |
Обращение к исходному источнику документов | 58 |
Другие системы WAMP | 59 |
Установка XAMPP в систему Mac OS X | 59 |
Обращение к исходному источнику документов | 60 |
Установка LAMP в Linux | 60 |
Работа в удалённом режиме | 61 |
Вход в систему | 61 |
Использование FTP | 61 |
Использование редактора программ | 63 |
Использование IDE | 64 |
Вопросы | 65 |
|
Глава 3. Введение в PHP | 66 |
Включение PHP в HTML | 66 |
Примеры в этой книге | 68 |
Структура PHP | 69 |
Комментарии | 69 |
Основной синтаксис | 70 |
Переменные | 70 |
Операторы | 75 |
Присваивание значений переменным | 78 |
Многострочные команды | 81 |
Типы переменных | 83 |
Константы | 84 |
Предопределённые константы | 84 |
Различие между командами echo и print | 85 |
Функции | 86 |
Область видимости переменной | 87 |
Вопросы | 93 |
|
Глава 4. Выражения и управление процессом выполнения |
программы в PHP | 95 |
Выражения | 95 |
TRUE или FALSE? | 95 |
Литералы и переменные | 97 |
Операторы | 98 |
Приоритетность операторов | 99 |
Взаимосвязанность операторов | 100 |
Операторы отношения | 102 |
Условия | 106 |
Инструкция if | 106 |
Инструкция else | 107 |
Инструкция elseif | 109 |
Инструкция switch | 110 |
Оператор ? | 113 |
Организация циклов | 114 |
Циклы while | 115 |
Циклы do…while | 116 |
Циклы for | 117 |
Прекращение работы цикла | 119 |
Инструкция continue | 120 |
Неявное и явное преобразование типов | 120 |
Динамическое связывание в PHP | 121 |
Динамическое связывание в действии | 122 |
Вопросы | 123 |
|
Глава 5. Функции и объекты PHP | 125 |
Функции PHP | 126 |
Определение функции | 127 |
Возвращение значения | 128 |
Возвращение массива | 130 |
Не передавайте аргументы по ссылке | 130 |
Возвращение глобальных переменных | 132 |
И ещё раз об области видимости переменных | 133 |
Включение и запрос файлов | 133 |
Инструкция include | 133 |
Инструкция include_once | 134 |
Инструкции require и require_once | 134 |
Совместимость версий PHP | 135 |
Объекты PHP | 135 |
Терминология | 136 |
Объявление класса | 138 |
Создание объекта | 138 |
Доступ к объектам | 139 |
Клонирование объектов | 140 |
Конструкторы | 141 |
Деструкторы в PHP 5 | 142 |
Написание методов | 142 |
Статические методы в PHP 5 | 143 |
Объявление свойств | 144 |
Объявление констант | 145 |
Область видимости свойств и методов в PHP 5 | 145 |
Статические свойства и методы | 146 |
Наследование | 147 |
Вопросы | 151 |
. |
Глава 6. Массивы в PHP | 152 |
Основные подходы к массивам | 152 |
Массивы с числовой индексацией | 152 |
Ассоциативные массивы | 154 |
Присваивание с использованием ключевого слова array | 155 |
Цикл foreach…as | 156 |
Многомерные массивы | 158 |
Использование функций для работы с массивами | 161 |
is_array | 161 |
count | 161 |
sort | 162 |
shuffle | 162 |
explode | 162 |
extract | 163 |
compact | 164 |
reset | 165 |
end | 166 |
Вопросы | 166 |
|
Глава 7. Практикум по программированию на PHP | 167 |
Функция printf | 167 |
Настройка представления данных | 169 |
Дополнение строк | 171 |
Функция sprintf | 172 |
Функции даты и времени | 172 |
Константы, связанные с датами | 174 |
Функция checkdate | 175 |
Работа с файлами | 175 |
Проверка существования файла | 176 |
Создание файла | 176 |
Чтение из файлов | 178 |
Копирование файлов | 178 |
Перемещение файла | 179 |
Удаление файла | 179 |
Обновление файлов | 180 |
Блокирование файлов при коллективном доступе | 181 |
Чтение всего файла целиком | 182 |
Загрузка файлов на веб-сервер | 183 |
Системные вызовы | 188 |
XHTML или HTML5 | 190 |
Вопросы | 191 |
|
Глава 8. Введение в MySQL | 192 |
Основные характеристики MySQL | 192 |
Сводка понятий, используемых в базах данных | 193 |
Доступ к MySQL из командной строки | 193 |
Начало работы с интерфейсом командной строки | 194 |
Использование интерфейса командной строки | 197 |
Команды MySQL | 199 |
Типы данных | 203 |
Индексы | 212 |
Создание индекса | 213 |
Создание запросов к базе данных MySQL | 218 |
Объединение таблиц | 227 |
Использование логических операторов | 229 |
Функции MySQL | 229 |
Работа с MySQL через phpMyAdmin | 230 |
Вопросы | 231 |
|
Глава 9. Освоение MySQL | 233 |
Проектирование базы данных | 233 |
Первичные ключи: ключи к реляционным базам данных | 234 |
Нормализация | 235 |
Первая нормальная форма | 236 |
Вторая нормальная форма | 238 |
Третья нормальная форма | 241 |
Когда не следует проводить нормализацию | 243 |
Отношения | 244 |
«Один к одному» | 244 |
«Один ко многим» | 245 |
«Многие ко многим» | 246 |
Базы данных и анонимность | 247 |
Транзакции | 247 |
Ядра (механизмы хранения) транзакций | 248 |
Команда BEGIN | 249 |
Команда COMMIT | 249 |
Команда ROLLBACK | 250 |
Команда EXPLAIN | 250 |
Резервное копирование и восстановление данных | 252 |
Команда mysqldump | 252 |
Создание файла резервной копии | 253 |
Восстановление данных из файла резервной копии | 255 |
Выгрузка данных в файлы формата CSV | 255 |
Планирование резервного копирования | 256 |
Вопросы | 256 |
|
Глава 10. Доступ к MySQL с использованием PHP | 258 |
Запросы к базе данных MySQL с помощью PHP | 258 |
Процесс | 258 |
Создание файла регистрации | 259 |
Подключение к базе данных MySQL | 260 |
Практический пример | 265 |
Массив $_POST | 268 |
Удаление записи | 268 |
Отображение формы | 269 |
Запросы к базе данных | 270 |
Запуск программы | 271 |
Практическая работа с MySQL | 272 |
Создание таблицы | 272 |
Описание таблицы | 273 |
Удаление таблицы | 274 |
Добавление данных | 274 |
Извлечение данных | 275 |
Обновление данных | 275 |
Удаление данных | 276 |
Свойство AUTO_INCREMENT | 276 |
Выполнение дополнительных запросов | 278 |
Предотвращение попыток взлома | 279 |
Возможные меры противодействия | 280 |
Указатели мест заполнения | 281 |
Предотвращение внедрения HTML-кода | 284 |
Процедурный метод использования mysqli | 285 |
Вопросы | 287 |
|
Глава 11. Обработка форм | 288 |
Создание форм | 288 |
Извлечение отправленных данных | 289 |
register_globals: склонность к использованию устаревших |
решений | 291 |
Значения по умолчанию | 292 |
Типы элементов ввода данных | 293 |
Обезвреживание введённых данных | 300 |
Пример программы | 302 |
А что нового в HTML5? | 304 |
Атрибут autocomplete | 305 |
Атрибут autofocus | 305 |
Атрибут placeholder | 305 |
Атрибут required | 306 |
Атрибуты подмены | 306 |
Атрибуты width и height | 306 |
Свойства, ожидающие повсеместной реализации | 306 |
Атрибут form | 307 |
Атрибут list | 307 |
Атрибуты min и max | 307 |
Атрибут step | 308 |
Тип ввода color | 308 |
Типы ввода number и range | 308 |
Окно выбора даты и времени | 308 |
Вопросы | 309 |
|
Глава 12. Cookie, сессии и аутентификация | 310 |
Использование cookie в PHP | 310 |
Установка cookie | 311 |
Доступ к cookie | 312 |
Удаление cookie | 313 |
HTTP-аутентификация | 313 |
Сохранение имён пользователей и паролей | 316 |
Добавление произвольных данных | 317 |
Использование сессий | 321 |
Начало сессии | 321 |
Завершение сессии | 325 |
Безопасность сессии | 326 |
Вопросы | 330 |
|
Глава 13. Изучение JavaScript | 331 |
JavaScript и текст HTML | 332 |
Использование сценариев в заголовке документа | 333 |
Устаревшие и нестандартные браузеры | 333 |
Включение файлов JavaScript | 334 |
Отладка кода JavaScript | 335 |
Использование комментариев | 337 |
Точка с запятой | 337 |
Переменные | 338 |
Строковые переменные | 338 |
Числовые переменные | 338 |
Массивы | 339 |
Операторы | 340 |
Арифметические операторы | 340 |
Операторы присваивания | 340 |
Операторы сравнения | 341 |
Логические операторы | 341 |
Инкремент и декремент переменной | 342 |
Объединение строк | 342 |
Управляющие символы | 342 |
Типизация переменных | 343 |
Функции | 344 |
Глобальные переменные | 344 |
Локальные переменные | 344 |
Объектная модель документа | 346 |
Но не всё так просто | 348 |
Ещё одно использование знака $ | 348 |
Использование DOM | 349 |
О функции document.write | 350 |
Использование console.log | 350 |
Использование alert | 350 |
Запись в элементы | 350 |
Использование document.write | 350 |
Вопросы | 351 |
|
Глава 14. Выражения и управление процессом выполнения |
сценариев в JavaScript | 353 |
Выражения | 353 |
Литералы и переменные | 354 |
Операторы | 355 |
Приоритетность операторов | 356 |
Взаимосвязанность | 356 |
Операторы отношения | 357 |
Инструкция with | 360 |
Использование события onerror | 360 |
Конструкция try…catch | 362 |
Условия | 362 |
Инструкция if | 363 |
Инструкция else | 363 |
Инструкция switch | 364 |
Оператор ? | 365 |
Циклы | 366 |
Циклы while | 366 |
Циклы do…while | 366 |
Циклы for | 367 |
Прекращение работы цикла | 368 |
Инструкция continue | 368 |
Явное преобразование типов | 369 |
Вопросы | 370 |
|
Глава 15. Функции, объекты и массивы JavaScript | 371 |
Функции JavaScript | 371 |
Определение функции | 371 |
Массив аргументов | 372 |
Возвращение значения | 373 |
Возвращение массива | 375 |
Объекты JavaScript | 376 |
Объявление класса | 376 |
Создание объекта | 377 |
Доступ к объектам | 378 |
Ключевое слово prototype | 378 |
Массивы в JavaScript | 381 |
Числовые массивы | 381 |
Ассоциативные массивы | 382 |
Многомерные массивы | 383 |
Методы массивов | 384 |
Вопросы | 389 |
|
Глава 16. Проверка данных и обработка ошибок в JavaScript и PHP | 390 |
Проверка данных, введенных пользователем, средствами JavaScript | 390 |
Документ validate.html (часть первая) | 391 |
Документ validate.html (часть вторая) | 393 |
Регулярные выражения | 396 |
Соответствие, закладываемое в метасимволы | 397 |
Нестрогое символьное соответствие | 397 |
Группировка с помощью скобок | 399 |
Символьный класс | 399 |
Указание диапазона | 400 |
Инвертирование | 400 |
Более сложные примеры | 400 |
Сводная таблица метасимволов | 403 |
Общие модификаторы | 405 |
Использование регулярных выражений в JavaScript | 405 |
Использование регулярных выражений в PHP | 406 |
Повторное отображение формы после проверки данных PHP-программой | 407 |
Вопросы | 413 |
|
Глава 17. Использование технологии AJAX | 414 |
Что такое AJAX | 415 |
XMLHttpRequest | 415 |
Ваша первая программа, использующая AJAX | 417 |
Использование GET вместо POST | 422 |
Отправка XML-запросов | 424 |
Использование для AJAX специальной среды | 428 |
Вопросы | 429 |
|
Глава 18. Введение в CSS | 430 |
Импортирование таблицы стилей | 431 |
Импортирование CSS из HTML-кода | 432 |
Встроенные настройки стиля | 432 |
Идентификаторы (ID) | 432 |
Классы | 433 |
Точки с запятой | 433 |
Правила CSS | 433 |
Множественные задания стиля | 434 |
Использование комментариев | 435 |
Типы стилей | 435 |
Исходные стили | 435 |
Пользовательские стили | 436 |
Внешние таблицы стилей | 436 |
Внутренние стили | 437 |
Внедрённые стили | 437 |
Селекторы CSS | 437 |
Селектор типа | 437 |
Селектор потомков | 438 |
Селектор дочерних элементов | 439 |
Селектор элементов, имеющих идентификатор | 440 |
Селектор класса | 441 |
Селектор атрибутов | 441 |
Универсальный селектор | 442 |
Групповая селекция | 442 |
Каскадность CSS | 443 |
Создатель таблиц стилей | 443 |
Методы создания таблиц стилей | 444 |
Селекторы таблиц стилей | 444 |
Вычисление специфики | 445 |
Разница между элементами Div и Span | 447 |
Измерения | 448 |
Шрифты и оформление | 450 |
font-family | 450 |
font-style | 451 |
font-size | 451 |
font-weight | 452 |
Управление стилями текста | 452 |
Оформление | 453 |
Разрядка | 453 |
Выравнивание | 454 |
Преобразование | 454 |
Отступы | 454 |
Цвета CSS | 455 |
Сокращённые цветовые строки | 455 |
Градиенты | 456 |
Позиционирование элементов | 457 |
Абсолютное позиционирование | 457 |
Относительное позиционирование | 458 |
Фиксированное позиционирование | 458 |
Псевдоклассы | 460 |
Сокращённая запись правил | 462 |
Модель блока и макет страницы | 462 |
Установка полей | 463 |
Применение границ | 465 |
Настройка отступов | 466 |
Содержимое объекта | 467 |
Вопросы | 468 |
|
Глава 19. Расширение CSS с помощью CSS3 | 469 |
Селекторы атрибутов | 469 |
Соответствие частям строк | 470 |
Оператор ^ | 470 |
Оператор $ | 471 |
Оператор * | 471 |
Свойство box-sizing | 471 |
Создание фона в CSS3 | 472 |
Свойство background-clip | 472 |
Свойство background-origin | 473 |
Свойство background-size | 474 |
Использование нескольких фонов | 475 |
Границы CSS3 | 477 |
Свойство border-color | 477 |
Свойство border-radius | 477 |
Прямоугольные тени | 480 |
Выход элемента за пределы размеров | 481 |
Разметка с использованием нескольких колонок | 481 |
Цвета и непрозрачность | 483 |
Цвета HSL | 483 |
Цвета HSLA | 484 |
Цвета RGB | 484 |
Цвета RGBA | 485 |
Свойство opacity | 485 |
Эффекты, применяемые к тексту | 486 |
Свойство text-shadow | 486 |
Свойство text-overflow | 486 |
Свойство word-wrap | 487 |
Веб-шрифты | 487 |
Трансформации | 489 |
Трёхмерная трансформация | 490 |
Переходы | 491 |
Свойства, применяемые к переходам | 492 |
Продолжительность перехода | 492 |
Задержка перехода | 492 |
Задание скорости перехода | 492 |
Сокращённый синтаксис | 493 |
Вопросы | 495 |
|
Глава 20. Доступ к CSS из JavaScript | 496 |
Ещё одно обращение к функции getElementById | 496 |
Функция O | 496 |
Функция S | 497 |
Функция C | 498 |
Включение функций | 499 |
Обращение к свойствам CSS из JavaScript | 500 |
Некоторые общие свойства | 500 |
Другие свойства | 501 |
Встроенный JavaScript | 503 |
Ключевое слово this | 504 |
Привязка событий к объектам в сценарии | 504 |
Прикрепление к другим событиям | 505 |
Добавление новых элементов | 506 |
Удаление элементов | 507 |
Альтернативы добавлению и удалению элементов | 508 |
Использование прерываний | 509 |
Использование функции setTimeout | 509 |
Отмена тайм-аута | 510 |
Функция setInterval | 510 |
Использование прерываний для анимации | 512 |
Вопросы | 513 |
|
Глава 21. Введение в jQuery | 515 |
Почему же именно jQuery? | 516 |
Включение jQuery | 516 |
Выбор подходящей версии | 517 |
Загрузка | 518 |
Использование сети доставки контента | 518 |
Всегда используйте самую последнюю версию | 519 |
Заказная сборка jQuery | 519 |
Синтаксис jQuery | 520 |
Простой пример | 520 |
Как избежать конфликта библиотек | 521 |
Селекторы | 522 |
Метод css | 522 |
Селектор элемента | 523 |
Селектор идентификатора | 523 |
Селектор класса | 523 |
Сочетание селекторов | 523 |
Обработка событий | 525 |
Ожидание готовности документа | 526 |
Функции и свойства событий | 527 |
События blur и focus | 527 |
Ключевое слово this | 529 |
События click и dblclick | 529 |
Событие keypress | 530 |
Деликатное программирование | 532 |
Событие mousemove | 532 |
Другие события, связанные с мышью | 535 |
Альтернативные методы работы с мышью | 536 |
Событие submit | 537 |
Специальные эффекты | 539 |
Исчезновение и появление | 540 |
Метод toggle | 541 |
Проявление и растворение | 541 |
Скольжение элементов вверх и вниз | 543 |
Анимация | 544 |
Остановка анимации | 547 |
Работа с DOM | 547 |
Разница между методами text и html | 548 |
Методы val и attr | 549 |
Добавление и удаление элементов | 550 |
Динамическое применение классов | 552 |
Работа с размерами. | 553 |
Методы width и height | 553 |
Методы innerWidth и innerHeight | 556 |
Методы outerWidth и outerHeight | 556 |
Обход объектов DOM | 556 |
Родительские элементы | 557 |
Дочерние элементы | 562 |
Одноуровневые элементы | 562 |
Выбор следующих и предыдущих элементов | 564 |
Обход элементов, выбранных с помощью методов jQuery | 565 |
Метод is | 567 |
Использование jQuery без селекторов | 569 |
Метод $.each | 569 |
Метод $.map | 570 |
Использование Ajax | 570 |
Использование метода Post | 570 |
Использование метода Get | 571 |
Дополнительные модули | 572 |
Пользовательский интерфейс jQuery | 572 |
Другие дополнительные модули | 573 |
jQuery для мобильных устройств | 573 |
Вопросы | 574 |
|
Глава 22. Введение в HTML5 | 576 |
Холст | 577 |
Геолокация | 578 |
Аудио и видео | 580 |
Формы | 581 |
Локальное хранилище | 582 |
Рабочие веб-процессы | 582 |
Веб-приложения | 582 |
Микроданные | 583 |
Резюме | 583 |
Вопросы | 583 |
|
Глава 23. Холсты в HTML5 | 584 |
Создание холста и доступ к нему | 584 |
Функция toDataURL | 586 |
Указание типа изображения | 588 |
Метод fillRect | 588 |
Метод clearRect | 588 |
Метод strokeRect | 589 |
Сочетание всех этих команд | 589 |
Метод createLinearGradient | 590 |
Метод addColorStop в подробностях | 593 |
Метод createRadialGradient | 594 |
Использование узоров для заливки | 595 |
Запись текста на холсте | 596 |
Метод strokeText | 597 |
Свойство textBaseLine | 597 |
Свойство font | 598 |
Свойство textAlign | 598 |
Метод fillText | 598 |
Метод measureText | 599 |
Рисование линий | 600 |
Свойство lineWidth | 600 |
Свойства lineCap и lineJoin | 600 |
Свойство miterLimit | 602 |
Использование путей | 603 |
Методы moveTo и LineTo | 603 |
Метод stroke | 603 |
Метод rect | 604 |
Заливка областей | 604 |
Метод clip | 606 |
Метод isPointInPath | 609 |
Работа с кривыми линиями | 609 |
Метод arc | 610 |
Метод arcTo | 612 |
Метод quadraticCurveTo | 613 |
Метод bezierCurveTo | 615 |
Обработка изображений | 615 |
Метод drawImage | 616 |
Изменение размеров изображения | 616 |
Выбор области изображения | 616 |
Копирование с холста | 618 |
Добавление теней | 618 |
Редактирование на уровне пикселов | 620 |
Метод getImageData | 620 |
Массив data | 621 |
Метод putImageData | 623 |
Метод createImageData | 623 |
Более сложные графические эффекты | 624 |
Свойство globalCompositeOperation | 624 |
Свойство globalAlpha | 626 |
Преобразования | 627 |
Метод scale | 627 |
Методы save и restore | 628 |
Метод rotate | 628 |
Метод translate | 629 |
Метод transform | 631 |
Метод setTransform | 632 |
Резюме | 632 |
Вопросы | 633 |
|
Глава 24. Аудио и видео в HTML5 | 634 |
О кодеках | 635 |
Элемент <audio> | 636 |
Поддержка браузеров, не работающих с HTML5 | 638 |
Элемент <video> | 639 |
Видеокодеки | 640 |
Поддержка устаревших браузеров | 643 |
Резюме | 644 |
Вопросы | 644 |
|
Глава 25. Другие свойства HTML5 | 646 |
Геолокация и служба GPS | 646 |
Другие методы определения местоположения | 647 |
Геолокация и HTML5 | 647 |
Локальное хранилище | 651 |
Использование локального хранилища | 652 |
Объект localStorage | 652 |
Рабочие веб-процессы | 654 |
Автономные веб-приложения | 656 |
Перетаскивание | 658 |
Обмен сообщениями между документами | 660 |
Микроданные | 663 |
Другие теги HTML5 | 666 |
Резюме | 666 |
Вопросы | 666 |
|
Глава 26. Объединение технологий | 668 |
Проектирование сайта социальной сети | 668 |
Информация на сайте | 669 |
Файл functions.php | 669 |
Функции | 669 |
Файл header.php | 671 |
Файл setup.php | 673 |
Файл index.php | 675 |
Файл signup.php | 676 |
Проверка возможности применения желаемого имени пользователя | 676 |
Регистрация | 676 |
Файл checkuser.php | 679 |
Файл login.php | 680 |
Файл profile.php | 682 |
Добавление текста в поле About Me (Обо мне) | 683 |
Добавление изображения профиля | 683 |
Обработка изображения | 683 |
Отображение текущего профиля | 684 |
Файл members.php | 687 |
Просмотр профилей пользователей | 687 |
Добавление и удаление друзей | 687 |
Вывод списка всех участников | 687 |
Файл friends.php | 690 |
Файл messages.php | 694 |
Файл logout.php | 697 |
Файл styles.css | 698 |
Файл ]javascript.js | 701 |
|
Приложение А. Ответы на контрольные вопросы | 703 |
Ответы на вопросы главы 1 | 703 |
Ответы на вопросы главы 2 | 704 |
Ответы на вопросы главы 3 | 704 |
Ответы на вопросы главы 4 | 706 |
Ответы на вопросы главы 5 | 707 |
Ответы на вопросы главы 6 | 709 |
Ответы на вопросы главы 7 | 709 |
Ответы на вопросы главы 8 | 710 |
Ответы на вопросы главы 9 | 711 |
Ответы на вопросы главы 10 | 712 |
Ответы на вопросы главы 11 | 713 |
Ответы на вопросы главы 12 | 714 |
Ответы на вопросы главы 13 | 715 |
Ответы на вопросы главы 14 | 716 |
Ответы на вопросы главы 15 | 717 |
Ответы на вопросы главы 16 | 718 |
Ответы на вопросы главы 17 | 719 |
Ответы на вопросы главы 18 | 720 |
Ответы на вопросы главы 19 | 721 |
Ответы на вопросы главы 20 | 723 |
Ответы на вопросы главы 21 | 724 |
Ответы на вопросы главы 22 | 725 |
Ответы на вопросы главы 23 | 726 |
Ответы на вопросы главы 24 | 727 |
Ответы на вопросы главы 25 | 728 |
|
Приложение Б. Интернет-ресурсы | 730 |
Сайты, относящиеся к PHP | 730 |
Сайты, относящиеся к MySQL | 730 |
Сайты, относящиеся к JavaScript | 731 |
Сайты, относящиеся к CSS | 731 |
Сайты, относящиеся к HTML5 | 731 |
Сайты, относящиеся к AJAX | 731 |
Сайты с разнообразными ресурсами | 732 |
Сайты с ресурсами издательства O'REILLY | 732 |
|
Приложение В. MySQL's FULLTEXT Stopwords | 733 |
|
Приложение Г. Функции MySQL | 736 |
Строковые функции | 736 |
Функции для работы с датами | 739 |
Функции для работы с временем | 744 |
|
Приложение Д. Селекторы, объекты и методы jQuery | 747 |
Селекторы jQuery | 747 |
Объекты jQuery | 751 |
Методы jQuery | 752 |