- •Минск, бгу,
- •Глава 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. Быстрая разработка Веб-приложений
- •Начало работы с сайтом
- •Создание контента
- •Установка нового модуля
- •Создание шаблона
- •Включение блока отображение популярных статей
- •Удаление
Установка локальных настроек
Локалью называют совокупность таких настроек, как формат даты и времени, язык, кодировка. Для установки локали используется функция SetLocale($category, $locale). Параметр $category может принимать следующие строковые значения: LC_CTYPE — активизирует указанную локаль для функций перевода в верхний/нижний регистры; LC_NUMERIC — активизирует локаль для функций форматирования дробных чисел, задает разделитель целой и дробной части в числах; LC_TIME — задает формат вывода даты и времени; LC_ALL — устанавливает все вышеперечисленные режимы. Параметр $locale задает локаль, по установленному в системе уникальному имени. Если величина $locale равна пустой строке "", то устанавливается та локаль, которая указана в глобальной переменной окружения, если в этом параметре передается 0, то новая локаль не устанавливается, а возвращается имя текущей локали для указанного режима.
Регулярные выражения
Базовым средством для поиска данных по шаблону являются регулярные выражения - последовательность символов, применяемых для поиска искомого текста. Напомним основные сведения о структурах, применяемых для поиска.
Простейшее регулярное выражение совпадает с одним или несколькими символами строки в наклонных скобках, например, /Jav/. Квадратные скобки [ ] означают “любой символ из перечисленных в скобках”, например [123abc], и могут содержать интервалы. Конструкция [a-zA-Z] совпадает с любым символом, входящим в интервалы (a-z и A-Z), конструкция [^a-zA-Z] совпадает с любым символом, не входящим в указанные интервалы. Символ точка означает <любой символ>. Например, выражение р.р совпадает с символом р, за которым следует произвольный символ, после чего опять следует символ р. Служебные символы экранируются обратной косой чертой (\). Если, например, в тексте надо поставить точку, то следует писать \.
Специальные символы представляет собой алфавитный символ с префиксом \ - признаком особой интерпретации следующего символа:
\d - десятичная цифр, \D - любой символ кроме десятичной цифры;
\w - алфавитно-цифровой символ,\W - не алфавитно-цифровой;
\s - пробельный символ, \S - не пробельный символ;
Часто используются символы \n ,\r , \t ,\\ . Символ \b, совпадает с границами слов: /sa\b/, символ \В не совпадает с границей слова: /sa\B/.
Символы +, * и {...}, обозначающие количество повторений отдельного символа или конструкции, заключенной в квадратные скобки, называются квантификаторами. Рассмотрим несколько примеров.
Если записать регулярное выражение /stud/ как /stud/i, поиск осуществляется без учета регистра. Выражение /^stud/i означает, что stud должно находиться в начале слова (student), а /stud$/ - в конце (restud). Регулярное выражение /^$/i соответствует пустой строке. Шаблон /stu+/ совпадает с последовательностью stu, за которой могут следовать дополнительные символы u. Аналогично шаблон /st{2,4}/ совпадает с символом s, за которым следуют от 2 до 4 экземпляров символа t. Выражение /[\d]+/ используется для поиска цифровой подстроки. Шаблон /<([\w]+)>/ совпадает с конструкциями, заключенными в угловые скобки, - например, тегами HTML.
Подстроки в регулярных выражениях можно группировать при помощи круглых скобок: /домен – (by|ru|uk|com)/ соответствует строке домен – by или другой. Круглые скобки ( ) означают логическую группу выражений, которая может (+) повторяться.
В шаблонах может использоваться оператор | (или), который проверяет совпадение одной из нескольких альтернатив.
В РНР существует пять функций поиска по шаблону с использованием Perl-совместимых регулярных выражений: preg_match( ); preg_match_all( ); preg_replace( ); preg_split( ); preg_grep( ).
preg_match(pattern, $str, [regs]) – ищет в строке $str соответствия с регулярным выражением pattern , и сохраняет их в массиве regs (если указано). Пример:
<?php
$sub = "abcdef";
$pattern = '/^def/'; //ищем def в начале строки
preg_match($pattern, $sub, $matches);
print_r($matches);
echo"<br/>";
$pattern = '/def$/';// ищем def в конце строки
preg_match($pattern, $sub, $matches);
print_r($matches);
?>
Вывод:
Array() Array ( [0] => def )
Функция preg_replace( ) может использовать регулярные выражения в обоих параметрах, шаблон и замена. Синтаксис функции:
mixed preg_replace (mixed шаблон, mixed замена, mixed строка)
Параметры шаблон и замена могут представлять собой масивы. Функция preg_replace( ) перебирает элементы обоих массивов и выполняет замену по мере их нахождения.
<?php
$strike="Mersedes is а good car ever created!";
// Выполнить поиск слова без учета регистра :
if (preg_match("/mers/i", $strike, $match)!=0)
{
print_r($match);
}
$strike = "регулярное выражение"; // просто строка
$preg = preg_replace("/р.+е/i", "<i>[вырезано]</i>", $strike);
echo "<br/>".$preg;
echo"<br/>";
$string = 'April 15, 2010';
$pattern = '/(\w+) (\d+), (\d+)/i';
$replacement = '${1}1,$3';
echo preg_replace($pattern, $replacement, $string);
?>
Результат выполнения:
Array([0]=>Mers) [вырезано] April1,2010
Функция preg_match_all( ) находит все совпадения шаблона в заданной строке. Синтаксис функции :
int preg_match_all (string шаблон, string строка, array совпадения)
Следующий пример показывает, как при помощи функции preg_match_all( ) найти весь текст, заключенный между тегами HTML:
<?php
preg_match_all("/\(? (\d{3})? \)? (?(1) [\-\s] ) \d{3}-\d{4}/x", "Call 555-1212 or 1-800-555-1212", $phones);
print_r ($phones);
echo "<br/>";
$html = "<b>bold text</b><a href=howdy.html>click me</a>";
preg_match_all("/(<([\w]+)[^>]*>)(.*?)(<\/\\2>)/", $html, $matches, PREG_SET_ORDER);
foreach ($matches as $val) {
echo "matched: " . $val[0] . "\n";
echo "part 1: " . $val[1] . "\n";
echo "part 2: " . $val[2] . "\n";
echo "part 3: " . $val[3] . "\n";
echo "part 4: " . $val[4] . "\n\n";
}
echo "<br/>";
$userinfo = "Name: <b>Romanchik Valery</b> <br> Title: <b>PHP Тeacher</b>";
preg_match_all ("/<b>(.*)<\/b>/U", $userinfo, $pat_array);
print_r ($pat_array);
print "<br/>".$pat_array[0][0]." <br> ".$pat_array[0][1]."\n";
?>
Результат:
Array ( [0] => Array ( [0] => 555-1212 [1] => 800-555-1212 ) [1] => Array ( [0] => [1] => 800 ) ) matched: bold text part 1: part 2: b part 3: bold text part 4:
matched: click me part 1: part 2: apart3:click me part4: Array ( [0] => Array ( [0] => Romanchik Valery [1] => PHP Тeacher ) [1] => Array ( [0] => RomanchikValery[1]=>PHPТeacher)) RomanchikValery PHP Тeacher
Функция array preg_split (string шаблон, string $strike) разбивает строку $strike в массив посредством регулярного выражения. В следующем примере функция preg_split( ) используется для выборки информации из переменной.
<?php
$inf="+Romanchik+++VS+++++@gmail.com+++++bsu.by";
$fields = preg_split("/[\+]{1,}/", $inf);
print_r ($fields);
$i=0;
while ($i < sizeof($fields)){
print $fields[$i]. "<br/>";
echo $i++."<br/>";
}
?>
Результат:
Array([0]=>[1]=>Romanchik[2]=>VS[3]=>@gmail.com[4]=>bsu.by)
0
Romanchik
1
VS
2
@gmail.com
3
bsu.by
4
Функция array preg_grep (string $pattern, array $mas) перебирает все элементы заданного массива и возвращает в виде массива все элементы, в которых совпадает заданное регулярное выражение. Пример использования функции для поиска в массиве слов, начинающихся на р:
<?php
$foods = array ("pasta", "steak", "fish", "potatoes");
// Поиск элементов, начинающихся с символа "р".
// за которым следует один или несколько символов
$pfoods = preg_grep("/p(\w+)/", $foods);
print_r( $pfoods);
echo "<br/>";
$i = 0;
while ($i < sizeof($foods)) {
print $pfoods[$i]. "<br>";
$i++;}
?>
Результат:
Array([0]=>pasta[3]=>potatoes)
pasta
Potatoes
Регулярные выражения - мощный инструмент для поиска и организации таких данных, как адреса электронной почты или поиск URL. Но в то же время регулярные выражения работают медленно. Например, для перевода целой строки в заглавные буквы можно написать следующее:
<?
$data = ereg_replace ("[a-z]", "[A-Z]", $data);
print $data;
$data = strtoupper ($data);
?>
Функция strtoupper() с этой задачей справилась бы быстрее. Всегда следует искать более "лёгкую" замену регулярным выражениям, поскольку скорость выполнения скрипта в таких случаях резко возрастает.
