
Теоретические вопросы по дисциплине «Использование ASP и PHP технологий при создании Web сайтов»
Web-приложения. Структура Web-приложений.
Сетевое приложение – совокупность программ и модулей, одновременно выполняющихся на разных физических машинах и использующих сеть для обмена информацией.
Большое распространение получила архитектура «клиент-сервер». Архитектура системы представляет собой набор равноправных, независимых и никак не связанных напрямую приложений, называемых клиентами, и единственного выделенного приложения, называемого сервером. Сервер занимает в некотором смысле подчиненное положение по отношению к клиентам (не требует информации от клиентов и не управляет ими, а лишь получает запросы, обслуживает их и отсылает ответы). Кроме клиентов и сервера в систему могут вводиться промежуточные звенья ( кэширующие сервера, шлюзы). Высокая нагрузка на сервер может привести к необходимости распараллеливания работы между несколькими серверами, что в свою очередь требует дополнительных элементов, балансирующих нагрузку на разные сервера, синхронизирующих их работу и выполняющих ряд других подобных функций.
Архитектура Web-приложений
Web-приложения представляют собой особый тип программ, построенных по архитектуре "клиент-сервер". Особенность их заключается в том, что само Web-приложение находится и выполняется на сервере - клиент при этом получает только результаты работы. Работа приложения основывается на получении запросов от пользователя (клиента), их обработке и выдачи результата. Передача запросов и результатов их обработки происходит через Интернет
Средства взаимодействия обозревателя и сервера
Web-сервера. Виды и структура Web-серверов.
Web-серверы
На сегодняшний день Web-серверы, кроме выполнения основной функции - возврата файла, запрошенного пользователем, позволяют расширять свою применимость, предоставляя для расширения функциональности различные интерфейсы. Одна из основных проблем, решаемых этими интерфейсами - создание возвращаемой пользователю страницы «на ходу», при этом в качестве исходного материала обычно используется адрес (URL), переданный пользователем, и файл, находящийся на сервере по этому адресу. Существует общий, стандартный для всех серверов интерфейс, называемый CGI (Common Gateway Interface, общий интерфейс узла), который позволяет создавать нужные страницы, просто выполняя указанные пользователем приложения на компьютере сервера. Этот способ требует довольно много серверных ресурсов, поэтому кроме CGI каждый сервер предоставляет дополнительные возможности расширения, варьирующиеся от сервера к серверу.
Все это позволяет создавать на базе серверов различные приложения, для которых основным пользовательским интерфейсом служит браузер.
Браузеры
Основными браузерами на сегодняшний день являются два браузера - Microsoft Internet Explorer и Netscape Navigator. Кроме просмотра HTML-страниц оба имеют развитые сервисные возможности. Оба браузера имеют реализации для Windows, MacOS и Unix. Эти браузеры имеют неодинаковые наборы расширений HTML и различаются по возможностям работы с DHTML, что приходится учитывать при подготовке страниц и разработке сайтов.
Из остальных браузеров стоит упомянуть Opera (www.opera.com) и Neoplanet (www.neoplanet.com).
Web-приложения
Web-приложения (web applications, часто их называют Интернет-приложениями, internet applications) представляют собой набор страниц, объединенных общей функциональностью. Все Web-приложения являются клиент-серверными, что, очевидно, определяется технологией построения Интернета. В приложениях обычно задействуются все вышеперечисленные технологии, от DHTML, исполняемом в клиентском браузере, до расширений Web-сервера. В настоящий момент Web-приложения используются как внутри предприятий в локальных сетях, так и в Интернете - это широко известные Интернет-магазины.
Сервер Apachi. Структура, загрузка, тестирование и конфигурация сервера Apachi.
Интерфейсы программирования Web-приложений
Технологии публикаций баз данных.
Статическая публикация БД средствами Delphi.
Основание конструкции PHP. Применение и типы данных.
Выражения, операторы, управляющие конструкции PHP.
Ввод/вывод данных в PHP.
Реализация массивов в PHP и работа с ними.
Синтаксис Определение при помощи array()
Массив может быть создан языковой конструкцией array(). В качестве параметров она принимает определенное количество разделенных запятыми пар key => value (ключ => значение).
array( [key =>] value , ... ) // key может быть integer или string // value может быть любым значением |
<?php $arr = array("foo" => "bar", 12 => true); echo $arr["foo"]; // bar echo $arr[12]; // 1 ?> |
key может быть либо integer, либо string. Если ключ - это стандартное представление integer, он так и будет интерпретироваться (т.е. "8" будет восприниматься как 8, тогда как "08" будет интерпретироваться как "08"). В PHP нет разницы между индексными и ассоциативными массивами; существует только один тип массива, который может содержать и числовые, и строковые индексы.
Значение может быть любого имеющегося в PHP типа.
<?php $arr = array("somearray" => array(6 => 5, 13 => 9, "a" => 42)); echo $arr["somearray"][6]; // 5 echo $arr["somearray"][13]; // 9 echo $arr["somearray"]["a"]; // 42 ?> |
Если вы не указываете ключ для приведенного значения, то берется максимальный числовой индекс и новый ключ будет равен этому максимуму + 1. Если вы укажите ключ, которому уже присвоено значение, оно будет перезаписано.
<?php // Этот массив эквивалентен ... array(5 => 43, 32, 56, "b" => 12); // ...этому массиву array(5 => 43, 6 => 32, 7 => 56, "b" => 12); ?> |
Массив - это упорядоченный набор данных. Каждый элемент массива имеет индекс и ключ. Индекс (ключ) служит для однозначной идентификации элемента внутри массива. В одном массиве не может быть двух элементов с одинаковыми индексами.
В PHP - длину массива не нужно задавать при объявлении массива, длина будет автоматически увеличена при добавлении нового элемента в массив. Простейший способ инициализации массива:
$people[0] = "Коля";
$people[1] = "Витя";
$people[2] = "Дима";
$people[3] = "Марк";
PHP определяет массив по квадратным скобкам. В квадратных скобках указывается индекс (ключ) отдельного элемента массива. В приведенном примере массив - $people, состоящий из четырех элементов. В PHP размер массива не задается явно.
Обратиться к элементу массива можно по имени массива и индексу элемента внутри массива:
echo $people[1];
Зная количество элементов массива, можно вывести все элементы массива с помощью цикла:
for ($i=0; $i<количество; $i++) echo "people[$i] <br>";
если неизвестно количество элементов массива, можно использовать функцию count(). Эта стандартная функция определяет размер массива, то есть количество элементов в нем. Соответственно:
for ($i=0; $i<count($people); $i++) echo "$people[$i] <br>";
Понятие списка.
Массивы, индексами которых являются числа, начинающиеся с нуля без пропусков, называются списками. С технической точки зрения разницы между массивами и списками нет.
Ассоциативные массивы.
Массивы, индексами которых являются строки, называются ассоциативными. Индексы ассоциативных массивов называются ключами. Например:
$people["Иванов"] = "Иван";
$people["Сидоров"] = "Николай";
$people["Петров"] = "Петр";
Доступ к элементам ассоциативных массивов осуществляется так же, как и к элементам обыкновенных массивов, и называется доступом по ключу:
echo $people["Иванов"];
Инструкция list().
Пример: имеем массив, состоящий из трех элементов:
$people[0] = "Иван";
$people[1] = "Николай";
$people[2] = "Петр";
Необходимо передать эти значения элементов массива, соответственно, трем переменным $Ivanov, $Sidorov, $Petrov:
list ($Ivanov,$Sidorov,$Petrov) = $people;
Инструкция array() и создание многомерных массивов.
Инструкция array() используется специально для создания массивов. При этом она позволяет создавать пустые массивы.
Методы использования инструкции array():
$A = array (); // создает пустой массив
$A = array ("Иванов"=>"Иван", "Петров"=>"Петр"); // создает ассоциативный массив с двумя элементами
$A = array ("Иванов","Петров"); // создает список с двумя элементами. Индексы нумеруются с нуля.
Инструкцию array() удобно использовать при создании многомерных массивов.
Пример: создать массив, элементами которого будут ассоциативные массивы с ключами name, sex, email.
$A["Ivanov"] = array("name"=>"Иванов И.", "sex"=>"М", "email"=>"ivanov@mail.ru");
$A["Petrov"] = array("name"=>"Петров И.", "sex"=>"М", "email"=>"petrov@mail.ru");
$A["Sidorova"] = array("name"=>"Сидорова Н.", "sex"=>"F", "email"=>"sidorova@mail.ru");
Добраться до элементов массива можно так:
echo $A["Ivanov"]["name"]; // выведет Иванов И.
echo $A["Ivanov"]["email"]; // выведет ivanov@mail.ru