- •Минск, бгу,
- •Глава 1. Компьютерные сети и протоколы
- •Глава 2. Проектирование и разработка сайтов……………………….62
- •Глава 3. Краткий обзор основных технологий разработки Веб приложений…………………………………………………………..……......90
- •Глава 4. Информационный обмен, html и css.…..……………….132
- •Глава 5. Язык JavaScript………………………………………………..202
- •Глава 6. Язык серверных скриптов php…………...…………………286
- •Глава 7. Лабораторные работы……………………..………………….400
- •Введение Коротко об истории Интернет
- •Как работает Интернет?
- •Система адресации
- •Способы подключения к сети
- •Сервисы Интернет
- •Электронная почта
- •Передача файлов по ftp
- •Всемирная паутина www
- •Глава 1. Компьютерные сети и протоколы
- •Локальные сети
- •Распределенные и глобальные сети
- •Сеть vpn
- •Адресация в локальных сетях
- •Адресация в глобальных сетях и в Интернет
- •Адресация в iPv6
- •Доменные имена
- •Url адреса
- •Понятие и краткое описание протоколов
- •Соотношение между tcp/ip и osi/iso
- •Межсетевой протокол iPv4
- •Формат пакета iPv6
- •Формат заголовка пакета iPv6
- •Заголовки расширения iPv6
- •Маршрутный заголовок
- •Транспортный протокол tcp
- •Протокол дейтаграмм udp
- •Протоколы arp и rarp
- •Протоколы сетевого уровня
- •Протоколы электронной почты
- •Протоколы smtp и pop3
- •Протокол imap4
- •Протокол ftp
- •Протокол передачи гипертекстов
- •Клиентский запрос http
- •Ответ сервера
- •Развитие прикладных протоколов: rpc, rest, soap
- •Безопасность в сети
- •Протокол ssl
- •Шифрование данных
- •Установление подлинности участников
- •Реализация ssl
- •Как избежать блокирования сайтов
- •Проблемы с кодировкой и Unicode
- •Задания для подготовки рефератов
- •Адресация в iPv6.
- •Глава 2. Проектирование и разработка сайтов
- •2.1. Виды сайтов
- •2.2. Этапы проектирования и разработки сайта
- •2.3. Модели проектирования и управление проектами
- •2.3.1 Модель водопада для управления проектами
- •2.3.2 Итерационная (спиральная) модель
- •2.3.3 Технология Microsoft Solutions Framework (msf)
- •2.3.4 Другие технологии управления проектами
- •2.4. Программные средства управления проектами
- •2.5.1. Стили сайтов
- •2.6. Логическое проектирование дизайна сайта
- •2.7. Главная страница сайта
- •2.8. Внутренние страницы сайта
- •2.9. Оценки качества Веб-сайтов
- •2.9.1. Оценки качества для e-commerce
- •2.9.2. Ключевые индикаторы для e-commerce
- •2.9.3. Определение качества и рейтинга сайтов учебных заведений
- •2.9.4. Оценка качества и стоимости сайта
- •Глава 3. Краткий обзор основных технологий разработки Веб-приложений
- •3.1. Язык разметки гипертекста xml
- •3.1.1. Синтаксис xml
- •Объявление xml. Первая строка xml-документа называется объявление xml.
- •Конструкции языка xml. Повторим еще раз содержимое xml-документа: набор элементов, секций cdata, директив анализатора, комментариев, спецсимволов, текстовых данных.
- •3.1.2. Правильно построенные и действительные документы xml
- •Отображение xml-документа. Наиболее распространены три способа преобразования xml-документа в отображаемый для пользователя вид:
- •3.3. Язык ActionScript
- •3.3.1. Видео-, аудиопроигрыватели
- •3.5. Технология «клиент-сервер»
- •3.6. Программирование для серверов
- •Язык Java на клиентской и серверной странице
- •3.7. Базы данных и язык sql
- •Нормализация модели данных
- •3.8. Язык sql
- •Команды управления транзакциями
- •Извлечение данных, команда select
- •Секция where. Директива where содержит условия отбора (предикат). Синтаксис where выглядит следующим образом:
- •Групповые функции. Если нас интересуют не строки таблицы, а некоторые итоги, мы можем использовать в процессе выборки колонок таблиц групповые функции (табл. 3.5.).
- •Команда insert. Добавление новых записей в таблицу осуществляется посредством команды insert. Она имеет следующий синтаксис:
- •Глава 4. Информационной обмен, нтмl и css
- •4.1. Язык разметки гипертекста html
- •4.2. Ссылки
- •4.3. Списки
- •4.3. Формы html
- •4.2.2. Новые элементы форм html5
- •Поддержка видео
- •4.2.3. Новые возможности html5
- •Поддержка аудио
- •4.3. Каскадные таблицы стилей css
- •4.3.1. Способы включения каскадных таблиц стилей
- •Заголовок 1 Заголовок 2 Заголовок 3
- •4.4. Цвет и фон
- •Свойства таблиц
- •4.5. Псевдоклассы
- •Псевдоэлементы
- •4.5.1. Форматирование псевдоклассов и псевдоэлементов
- •Различные свойства
- •Отступы, поля, позиционирование
- •Границы элементов
- •Новое в css3
- •Глава 5. Язык JavaScript
- •5.1. Включение скриптов JavaScript в html-код
- •Создание простых сценариев
- •Комментарии.
- •Отладка скриптов. Ввод и вывод данных
- •5.2. Описание языка
- •5.2.1. Типы данных
- •Преобразование типа
- •5.2.2 Операторы и выражения
- •Оператор присваивания
- •Арифметические операторы
- •Операторы сравнения
- •Оператор with
- •Оператор switch
- •5.3. Функции
- •5.3.1. Стандартные функции.
- •Eval() : позволяет выполнить строку, содержащую выражение, как javascript-код. Это полезно когда код формируется в ходе выполнения скрипта. Пример реализации простейшего калькулятора приведен ниже:
- •5.3.2. Функции пользователя
- •5.3.3. Передача параметров по значению и по ссылке
- •5.3.4. Глобальные и локальные переменные
- •5.3.5. Модель событий
- •Ключевое слово this
- •5.3.6. Модель событий JavaScript 1.2 и объект Event.
- •5.4. Объектная модель
- •5.4.1. Пользовательские объекты
- •5.4.2. Прототипы
- •5.4.3. Исключения: throw/catch/finally
- •5.4.4. Встроенные объекты String, Array, Date, Math Объект String. Экземпляр объекта можно объявить двумя способами:
- •Объект Array
- •Объект Date (Дата)
- •Методы объекта Date
- •5.5.1. Коллекции
- •Свойства элемента innerHtml и outerHtml
- •Навигация по дереву документа
- •Создание новых узлов
- •Удаление и замена узлов в документе
- •Объект window
- •Свойства окна, передаваемые методу open()
- •Методы объекта window
- •Свойства и методы объекта navigator
- •Свойства и методы объекта history
- •Свойства и методы объекта location
- •Объект layer
- •Каскадные таблицы стилей и объект style
- •Модель ajax:
- •5.6.1 Класс xmlHttpRequest
- •Использование dom
- •Работа с cookie
- •5.7.2. Манипуляции с dom
- •5.5.3. Блочная верстка
- •5.7.3. Обработка событий
- •5.7.3. Обработка событий
- •5.8. Примеры на JavaScript
- •Глава 6. Язык серверных скриптов php
- •Инструменты для разработки
- •Как php работает
- •Описание языка Типы данных
- •Массивы и инициализация массивов
- •Операции и выражения
- •Операции сравнения
- •Логические операции
- •Строковые операции
- •Операторы управления
- •Функции
- •Рекурсивные функции
- •Область действия и время жизни переменных
- •Изменяемые (динамические) переменные
- •Внешние библиотечные функции
- •Функции для работы с массивами
- •Функции для работы со строками.
- •Функции форматных преобразований строк
- •Преобразование строк и файлов к формату html и наоборот
- •Преобразование html в простой текст
- •Установка локальных настроек
- •Регулярные выражения
- •Функции даты и времени
- •Математические функции
- •Объектно-ориентированное программирование в php Основные понятия ооп
- •Классы и Объекты
- •Конструкторы и деструкторы
- •Наследование классов и интерфейсов
- •Магические методы
- •Обработка ошибок
- •Ошибки php и журнал error_reporting
- •Чтение и запись бинарных файлов
- •Работа с каталогами в рнр
- •MySql – сервер: бд1; бд2; бд3; бд4;
- •Команды sql для создания баз данных и таблиц
- •Выборка данных из бд
- •Выборка данных из таблиц бд
- •Работа с MySql (сохранение данных в базе данных).
- •Работа с MySql занесение и получение данных из базы данных
- •Организации работы с данными
- •Передача данных от клиента к серверу и обратно. Протокол http
- •Клиентские методы http
- •Обработка html-форм
- •Передача переменных из формы в скрипт.
- •Передача данных на сервер по методам get и post
- •Ввод данных из различных форм
- •Работа с e-mail
- •Cookies-наборы
- •Сессии (Сеансы)
- •Отмена регистрации сеансовых переменных
- •Сериализация объектов
- •Вывод графических данных с помощью рнр
- •Получение информации об изображении
- •Функции рисования прямых и кривых линий
- •Заливка изображений
- •Удаление и изменение цветов палитры
- •Создание прозрачности в изображениях
- •Рисование с помощью кистей
- •Использование шрифтов и вывод строк
- •Слияние изображений с помощью gd
- •Глава 7. Лабораторные работы Лабораторная работа 1 (4 часа). Инструменты и средства создания простых сайтов
- •Лабораторная работа 3 (4часа). Применение каскадных таблиц стилей css
- •Трехколоночный контейнерный макет сайта
- •Лабораторная работа 4. Применение каскадных таблиц стилей css
- •1. Свойства шрифтов.
- •2. Свойства текста.
- •3. Свойства цвета и фона.
- •4. Свойства рамки.
- •5. Свойства списков.
- •6. Свойства изображений.
- •Лабораторная работа 5 (4 часа). Динамика и JavaScript на Веб – странице.
- •Ответить на следующие вопросы
- •Лабораторная работа 6 по JavaScript (4 часа).
- •1.Проверка правильности заполнения формы на сайте
- •Методы объекта window
- •Задание 2. Функции
- •Задание 4. Работа с базами данных Выполнить одно из перечисленных ниже упражнений
- •Задание 5. Создание web-объектов Список заданий
- •Drupal: практические примеры
- •Приложение 1. Курсовые работы Курсовая работа 1. Создание клиентских приложений
- •Курсовая работа №2. Сайты клиент-сервер
- •Каталог товаров
- •Система вопрос/ответ
- •Курсовая работа №3. Технологии разработки Веб – приложений
- •Приложение 2. Быстрая разработка Веб-приложений
- •Начало работы с сайтом
- •Создание контента
- •Установка нового модуля
- •Создание шаблона
- •Включение блока отображение популярных статей
- •Удаление
Изменяемые (динамические) переменные
Иногда бывает удобно давать переменным изменяемые имена. Такие имена могут изменяться динамически. Например:
$a = "hi";
Изменяемая переменная берет некое значение и обрабатывает его как имя переменной. В приведенном выше примере значение hi может быть использовано как имя переменной, посредством применения двух записанных подряд знаков доллара, т.е.:
$$a="PHP"; /* фактически получается что $hi="PHP" */
print "$a ${$a}"; /* получаем на выходе: hi PHP */
print "$a $hi"; /* или так, что одно и то-же */
Внешние библиотечные функции
В этом разделе описываются некоторые из часто используемых функций. Более обширный список доступен на Web-сайте PHP.net.
Функции для работы с массивами
Функции count(), sizeof() – используются для подсчета числа элементов в массиве; sort() – сортировка элементов; shuffle() – случайное перемешивание элементов; array_slice($name, offset, length) – используется для извлечения части массива, где $name имя массива, offset - начальная позиция, length указывает число вырезаемых элементов. Функция array_merge($name1, $name2) – используется для объединения или слияния массивов. Пример:
<?php //pr48
$massiv = array( 'В пятницу вечером после работы
мама свои начинает заботы',
'папа залег на диван, как медведь',
'многое должен ребенок суметь',
'много проблем сам решить, все успеть');
foreach($massiv as $value) echo $value;//Вывод
sort($massiv);//Сортировка
foreach($massiv as $key=>$value)
echo ("<li>$key=>$value</li>");//
rsort($massiv);// Сортировка в обратном порядке
for($i=0;$i<count($massiv);$i++){
echo("<br>$massiv[$i]");
}
shuffle($massiv);// Перемешивание
for($i=0;$i<count($massiv);$i++){
echo("<br>$i-$massiv[$i]");
}
$massiv1=array_slice($massiv,2,3); //вырезать три члена, начиная со второго
// и присвоить их massiv1
print_r($massiv1);
?>
Функции для работы со строками.
Приведем несколько распространенных функций: strlen($st) – возвращает длину строки; ltrim($st) – удаляет разделители типа пробела или табуляции в начале строки; rtrim($st) – удаляет разделители в конце строки; trim($st) - вырезает пробелы в начале и в конце строки. Пример:
<?php //str1.php
//Удаление лишних пробелов по-левому боку текста:<br />
$str=" –Текст с лишними пробелами по бокам.- “;
$str=ltrim($str); //удаление пробелов слева<br />
echo "$str", strlen($str)," <br />";
$str=rtrim($str); //Удаление пробелов справа<br />
echo "$str"," <br />";
$str=" Еще Текст с пробелами по бокам ". $str=trim($str);//Удаление пробелов <br />
echo "$strike";
?>
Вывод:
-Текст с лишними пробелами по бокам.- 89
-Текст с лишними пробелами по бокам.-
Еще Текст с лишними пробелами по бокам -Текст с лишними пробелами по бокам.-
Функция strpos($where, $what) находит в строке $where подстроку $what и возвращает ее позицию иначе возвращает false. Функция
substr ($st, $start [, $length]) - возвращает часть строки $st, начиная с позиции $start и длиной $length. Если $length не задана, то возвращается вся подстрока до конца строки. Функция strstr($st, $ndl) - находит в строке $st первое вхождение строки $ndl и возвращает часть строки $st от первого вхождения $ndle до конца. Иначе возвращает FALSE. Для поиска подстроки без учёта регистра используется функция stristr().
<?php //str2.php
echo strpos("Hello","el"),"<br/>"; // Выводит 1
echo strstr("Hello","el"),"<br/>";
// чтобы избежать проблем с определением типов используйте
//операторы тождественных сравнений (===) (!==)
if (strpos("Norway","rwa") !== false)
echo "Строка rwa есть в Norway","<br/>";
//Пример использования substr()
echo $rest = substr("abcdef", 1),"<br/>"; //возвращает "bcdef"
echo $rest = substr("abcdef", 0, 4),"<br/>";//возвращает "abcd"
$strike = "Programmer";
echo substr($str,0,2),"<br/>"; // Выводит Pr
echo substr($str,-3,3),"<br/>"; // Выводит mer
//Пример strstr()
$email = 'user@example.com';
$domain = strstr($email, '@');
print "$domain, <br/>"; // печатает @example.com
?>
Вывод:
1
Ello
Строка rwa есть в Norway
Bcdef
Abcd
Pr
Mer
@example.com,
Функция strcmp(string $str1, string $str2) сравнивает две строки посимвольно и возвращает: 0, если строки совпадают; -1, если строка $str1 лексикографически меньше $str2; и 1, если $str1 "больше" $str2. Для функции strcasecmp($str1, $str2) регистр символов не учитывается.
Функция int strspn (string st1, string st2) возвращает длину первого сегмента строки st1, содержащего символы, присутствующие в st2. Следующий фрагмент показывает, как функция strspn( ) используется для проверки пароля. Здесь же сравниваются две одинаковые строки:
<? //Str13.php
$string1 = "butter";
$string2 = "Butter";
if ((strcmp($string1, $string2)) == 0)
print "Strings are equivalent!";
else
print "Strings are not equivalent!";
if ((strcasecmp($string1, $string2)) == 0)
print "Строки совпадают с точностью до регистра!";
$password = "12345";
if (strspn($password, "1234567890") ==strlen($password))
print "Password cannot consist solely of numbers!";
?>
Вывод:
Strings are not equivalent!
Строки совпадают с точностью до регистра!
Password cannot consist solely of numbers!
str_replace(string $from, string $to, string $st) - Заменяет в строке $st все вхождения подстроки $from (с учетом регистра) на $to и возвращает результат. Исходная строка st меняется. В следующем примере символы перевода строки заменяются на их HTML эквивалент — тэг <br>: $st=str_replace("\n","<br>\n",$str). Функция
string WordWrap(string $str, int $width=75, string $break="\n")
разбивает блок текста $str на несколько строк, завершаемых символами $break, так, чтобы на строке было не более $width букв. Возвращается получившаяся строка с символами перевода строки, заданными в $break. Пример:
<?php //str3.php
$strike = "Это текст электронного письма, которое нужно отправить адресату ";
// Разбиваем текст по 30 символов
$strike = WordWrap ($strike, 30, "<br>");
echo $strike;
?>
Вывод: Это текст электронного письма,
которое нужно отправить
адресату
string stripcslashes (string strike) - возвращает строку с вырезанными обратными слэшами \n, \r. Функция
strip_tags (string $str [, string $allow_tags])
удаляет из строки str все тэги и возвращает результат. В параметре $allow_tags перечисляются вплотную друг к другу тэги, которые не следует удалять. Примеры:
<? //str4.php
$str="<b>жирный текст</b>";
echo "$str,<br/>";
$str=strip_tags($str);
echo "НЕ $str<br/>";
//Удаление всех тэгов, кроме <b> и <i>:
$str="<h1>большой текст</h1> <b><i>жирный текст</i></b>";
echo "$str <br/>";
$str=strip_tags($str,"<b><i>");
echo "$str,<br/>";
$strip = strip_tags ($str); // Удаляет все - теги из строки
echo "$strip<br/>";
?>
Вывод:
жирный текст, НЕ жирный текст
большой текст
жирный текст большой текст жирный текст, большой текст жирный текст
Следующие функции предназначены для быстрого URL-кодирования и декодирования. Функция UrlEncode(string $str) кодирует строку и возвращает результат. Например:
echo "<a href=/script.php?param=".UrlEncode($UserData);
UrlDecode(string $st) производит URL-декодирование строки. Функция HtmlSpecialChars(string $str) обычно используется в комбинации с echo. Основное ее назначение - гарантировать, что в выводимой строке ни один участок не будет воспринят как тэг. Заменяет в строке некоторые символы (такие как амперсант, кавычки и знаки "больше" и "меньше") на их HTML-эквиваленты, так, чтобы они выглядели на странице "самими собой". Применяется для формирования параметра value в различных элементах формы, или же при выводе сообщения в гостевой книге.
Функция strtoupper(string) – преобразует строку в верхний регистр; strtolower(string) – преобразует строку в нижний регистр; strrev(string) – возвращает строку string в обратном порядке. Примеры.
<?php//str6.php
$string = "Hello World";
$another_string = "Welcome to PHP";
echo strlen($string);
echo strtoupper($another_string);
echo strrev($another_string);
echo strpbrk($string, "W");
?>
Вывод:
11
WELCOME TO PHP
PHP ot emocleW
World
