Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовик Орлова.doc
Скачиваний:
9
Добавлен:
11.04.2015
Размер:
397.31 Кб
Скачать

3.1 Язык разметки гипертекстовых страниц html

Язык разметки гипертекстовых страниц (HTML – Hypertext Markup Language) представляет собой язык, разработанный специально для создания Web-документов. Он определяет синтаксис и размещение специальных инструкций (тегов), которые не выводятся на экран, но указывают браузеру, как отображать содержимое документа. Он также используется для создания ссылок на другие документы, локальные или сетевые, например, находящиеся в сети Интернет.

Стандарт HTML и другие стандарты для Web разработаны под руководством консорциума W3C (World Wide Web Consortium). Стандарты, спецификации и проекты новых предложений можно найти на сайте http://www.3w.org/. В настоящее время действует спецификация HTML 4.0, поддержка которой со стороны основных браузеров постоянно растет.

На практике на стандарт HTML большое влияние оказывает наличие тегов, предложенных и поддерживаемых наиболее известными браузерами, такими как Microsoft Internet Explorer и Netscape Navigator. Эти теги в данный момент могут как входить, так и не входить в состав действующей спецификации HTML.

Информации о тегах HTML Compendium (краткое руководство по HTML) созданно Ron Woodall. Компендиум содержит список тегов и их атрибутов в алфавитном порядке, а также обновленную информацию о поддержке каждого из них со стороны браузеров. Компендиум HTML находится на сайте http://www.htmlcompendium.org.

3.1.1 Теги html

Документ HTML содержит текст (содержимое страницы) и встроенные теги – инструкциями о структуре, внешнем виде и функции содержимого. Документ HTML разделяется на две основные части: заголовок – head и тело – body. Заголовок содержит такие сведения о документе, как его название и методическая информация, описывающая содержимое. В теле находится само содержимое документа (то, что выводится в окне браузера).

Каждый тег состоит из имени, за которым может следовать список необязательных атрибутов, все они находятся внутри угловых скобок < >. Содержимое скобок никогда не выводится в окне браузера. Имя тега, как правило, представляет собой аббревиатуру его функции, что облегчает его запоминание. Атрибуты являются свойствами, которые расширяют или уточняют функцию тега. Как правило, имя и атрибуты внутри тега не чувствительны к регистру. Тег <BODY BGCOLOR=white> будет работать так же, как <body bgcolor=white>. Однако значения определенных атрибутов могут быть чувствительны к регистру. Это относится, в частности, к именам файлов и URL.

Большинство тегов являются контейнерами. Это означает, что у них имеется начальный (открывающий или стартовый) и конечный (закрывающий) теги. Текст, находящийся между тегами, будет выполнять содержащиеся в них инструкции. Например:

The weather is <I>gorgeous</I>today.

Результат: The weather is gorgeous today.

Конечный тег имеет то же имя, что и начальный, но перед ним стоит слеш (/). Его можно рассматривать как "выключатель" тега. Конечный тег никогда не содержит атрибутов.

В некоторых случаях конечный тег не обязателен, и браузер определяет конец тега из контекста. Чаще всего опускают конечный тег <р> (абзац). Браузеры раньше поддерживали этот тег без соответствующего завершения, поэтому многие авторы Web привыкли использовать краткую форму. Это разрешено не всем тегам, и не все браузеры прощают их отсутствие. Поэтому, если есть сомнения, необходимо включить в текст закрывающий тег. Это особенно важно, когда в документе используются каскадные таблицы стилей.

Некоторые теги не имеет завершающих тегов, потому что они используются для размещения отдельных (автономных) элементов на странице. Одним из них является тег изображения <img>, он просто помещает графику в поток страницы. Другие автономные теги – это разрыв строки (<br>), горизонтальная линия (<hr>) и теги, содержащие информацию о документе и не влияющие на содержимое, выводимое на экран, такие как <meta> и <base>.

Атрибуты добавляются в тег для расширения или модификации его действий. К одному тегу можно добавить несколько атрибутов. Если атрибуты тега следуют после имени тега, они разделяются одним или несколькими пробелами. Порядок следования не важен. Большинство атрибутов имеют значения, которые следуют за знаком равенства (=), находящимся после имени атрибута. Длина значений ограничена 1024 символами. Значения могут быть чувствительны к регистру. Иногда значения должны находиться в кавычках (двойных или одинарных). Правила записи значения следующие:

– если значение представляет собой одно слово или число и состоит только из букв (a-z), цифр (0-9) и специальных символов (точка <.> или дефис <->), то можно поместить его после знака равенства без кавычек;

– если значение содержит несколько слов, разделенных запятыми или пробелами, или содержит специальные символы, отличные от точки или дефиса, тогда его необходимо поместить в кавычки. Например, URL требуют кавычек, потому что они содержат символы "://". Также кавычки необходимы при задании значений цветов с использованием формата "#rrggbb".

В теги HTML могут помещаться другие HTML-теги для осуществления воздействия нескольких тегов на один элемент. Это называется вложением, и, что бы правильно его осуществить, начальный и конечный теги вложенного тега должны обязательно находиться между начальным наконечным тегами внеш­него тега, например:

The Weather is <B><I>gorgeous</I></B> today.

Результат: The weather is gorgeous today.

Часто встречающейся ошибкой является перекрытие тегов. Хотя часть браузеров отображают содержимое, отмеченное таким образом, многие не разрешают нарушать правило, поэтому важно размешать теги правильно. Следующий пример показывает неверное вложение тегов (заметьте, что тег <В> закрывается перед закрытием <I>):

The weather is <B><I>gorgeous</B></I>today – данная информация, игнорируется браузерами.

Некоторая информация будет игнорироваться при просмотре браузерами. В ее состав входят:

– разрывы строк. Символы конца строк в документе HTML игнорируются. Текст и элементы будут переноситься до тех пор, пока в потоке текста документа не встретится тег <р> или <br>. Разрывы строк выводятся, если текст обозначен как текст с заданным форматом (<рrе>);

– символы табуляции и множественные пробелы. Когда браузер встречает в документе HTML символ табуляции и несколько последовательных симво­лов пробела, он выводит только один пробел. Таким образом, если документ содержит: "far, far away", браузер выведет "far, far away". Дополнительные пробелы можно добавить в текстовый поток, используя символ неразрывного пробела (Snbsp;). Кроме того, все пробелы выводятся, если текст является форматированным (находится в тегах <рrе>);

– множественные <р>-теги. Последовательность тегов <р>, не прерываемых текстом, всеми браузерами интерпретируется как избыточная. Содержимое будет выводиться так, как если бы был только один тег <р>. Большинство браузеров выведет несколько тегов <Br> в виде нескольких переходов на новую строку;

– нераспознаваемые теги. Если браузер не понимает тег или тот был неверно задан, то браузер его просто игнорирует. В зависимости от тега и браузера это может привести к различным результатам. Либо браузер ничего не вы­ведет, или он может отобразить содержимое тега как обычный текст;

– текст в комментариях. Браузеры не выводят текст между специальными элементами <! и ->, которые используются для обозначения комментариев. После символов начала комментария и перед символами окончания обязательно должен находиться пробел. В сам комментарий можно помещать практически все. Комментарии нельзя вкладывать. В Microsoft Internet Explorer имеется фирменный тег, обозначающий комментарии <com-ment>...</comment>. Однако, он не поддерживается другими браузерами.

3.2 PHP

РНР изобретен Расмусом Лердорфом в конце 1994 года. Первая вер­сия выпущена в 1995 году под именем «Инструментарий Персональ­ных Домашних Страниц», затем она была переработана и названа PHP/FI Version 2 (FI — модуль обработки данных для форм). Так­же была добавлена поддержка баз данных mSQL. С этого момента в разработке стали принимать участие добровольцы.

Статистика используемости РНР приблизительна, но, согласно ис­следованию, проведенному Netcraft, в начале 2001 года РНР исполь­зовался на более чем 5 300 000 сайтах по всему миру. Для сравне­ния: в это время число IIS серверов было примерно таким же (5 млн). Разработка интерпретатора РНР приняла форму организованного командного процесса, ядро интерпретатора разрабатывает компания Zend.com. При этом РНР распространяется свободно: его последнюю версию можно загрузить с сайта PHP.net. Модули РНР поставляют­ся в комплекте с сервером Apache, в комплектах систем Linux.

Изначально аббревиатура РНР означала Preprocessor of Home Pages — препроцессор домашних страниц. Это язык внедряемых в HTML-страницы сценариев, исполняемых на сервере. По большей части его синтаксис заимствован из таких языков, как С, Perl, Java, и при этом добавлена масса возможностей, которых этим языкам недостает. Про­ще говоря, синтаксис РНР — это разумная альтернатива и строго­сти С, и «беспредельности» Perl.

РНР наделен практически полным набором функциональности, о ко­торой (до появления РНР) мог только мечтать web-программист. Его цель — позволить максимально быстро создавать динамически гене­рируемые web-страницы. С полным основанием можно заявить, что изучение и использование РНР будет выгодно как начинающим, так и профессиональным программистам.

Основными конкурентами РНР являются технологии JSP (Java Server Pages и Java Scriptlets), ASP (Active Server Pages), Perl, SSI (Server Side Includes), Cold Fusion Server Pages.

Рассмотрим те недостатки, которые присущи указанным технологиям. JSP — достаточно слож­ный для изучения и использования язык. ASP, основанный на син­таксисе VBScript (Visual Basic), имеет всего несколько десятков соб­ственных функций и поэтому вынужден использовать СОМ-объекты; кроме того, он ориентирован исключительно на работу под Windows. Perl — язык головоломный, и его вольности затрудняют его понима­ние. SSI позволяет всего лишь компоновать HTML-страницу из не­скольких файлов. CF — коммерческий продукт, что является его ос­новным недостатком.

Основные достоинства РНР:

  1. бесплатен;

  2. постоянно совершенству­ется;

  3. работает на UNIX и Windows платформах;

  4. внедряется прямо в HTML-код, поэтому программисту не приходится писать программу с множеством команд для простого вывода HTML. Код HTML и РНР можно чередовать по мере необходимости. РНР позволяет написать фрагмент следующего вида:

< title>< ? print "Hello world!"; ?>< /title>

< /html>

Сообщение "Hello world!" выводится в заголовке web-страницы. Интересно то, что команда print внутри конструкции, которая обычно называется экранирующими последовательностями РНР (< ?...?>), представляет собой законченную программу. Ни длинного кода инициализации, ни включения библиотек — программа состоит лишь из того кода, который непосредственно решает поставленную задачу!

  1. допускает работу с большинством СУБД;

  2. имеет широкий набор функций (более 3 тыс.);

  3. допускает объектно-ориентированное программирование;

  4. способен использовать протоколы HTTP, FTP, ШАР, SNMP, NNTP, РОРЗ, net sockets и другие;

  5. позволяет выполнять все операции, что и пере­численные его конкуренты, и даже работать с файлами графики. Можно также запускать РНР-скрипты как интерпретируемые файлы и компилировать исполняемые приложения (в том числе с под­держкой графического интерфейса GTK).

Если вы обнаружите, что РНР не способен на что-то (или работает не так, как вам хотелось бы), никто не будет препятствовать вам вно­сить в исходный код РНР (написанный на С) желаемые изменения. РНР является программным продуктом с открытым исходным кодом, и внесение в него улучшений и дополнений путем создания собст­венных модулей расширения всегда приветствуется.

Основные недостатки РНР:

  1. Несогласованный синтаксис функций и неортогональность

PHP предоставляет разработчикам большое количество самых разнообразных функций, которые попали в язык из расширений, создаваемых разными группами программистов. В результате синтаксис языка не согласован, например, часть функций для работы с массивами начинается с префикса array_, другая часть этим префиксом не обладает. Названия части строковых функций начинается с префикса str, другие функции таким префиксом не обладают. В тех же строковых функциях обрабатываемая строка может передаваться как в качестве первого, так и в качестве последнего аргумента, что требует постоянного обращения к документации. Многие задачи, например разбиение строки на массив или подстроки, решаются неимоверным количеством разнообразных наборов функций. Все это связано с сильным влиянием Perl, в котором неортогональность является частью концепции. Однако PHP задумывался как промышленный и ортогональный язык, и альтернативные наборы функций для решения одних и тех же задач сильно мешают создавать код в едином стиле. К сожалению, проблема скорее всего не будет решена из соображений обратной совместимости.

  1. Отсутствие обратной совместимости между версиями языка

Код, созданный для более ранних версий языка, зачастую не работает или работает некорректно с более поздними версиями языка. В более поздних версиях исключаются конструкции, методики, функции, применявшиеся ранее. В результате, приложения, созданные несколько лет назад, практически теряют работоспособность для современных версий языка и требуют значительной модификации. Такие изменения обусловлены двумя факторами: устранение несогласованного синтаксиса и устранение конструкций, поощряющих создание небезопасного кода. Справедливости ради, следует отметить, что отсутствие обратной совместимости вообще характерно для современных интерпретируемых языков.

  1. Отсутствие поддержки Unicode в ядре языка

Поддержка Unicode-строк реализуется через расширение mbstring. При этом вместо стандартных функций работы со строками используются аналогичные функции, но с префиксом mb_. Сами строки не хранят информацию о своей кодировке, и её необходимо указывать вручную при вызове функций расширения mbstring. Проблема, скорее всего, будет решена в PHP 6.

  1. Отсутствие многопоточности

В языке не предусмотрена возможность создания многопоточных приложений. Есть различные обходные решения с использованием curl и сокетов. Для POSIX-совместимых систем можно использовать функции с префиксом pcntl_. Справедливости ради, следует отметить, что PHP распространен главным образом в области Web-разработки, где зачастую проблему многопоточности берет на себя веб-сервер.

  1. Отсутствие прямого обращения к возвращаемому массиву

В языке PHP массив, возвращаемый функцией или методом, необходимо предварительно занести в переменную, чтобы применить оператор […].

Пример:

function odds($N)

{

return range(0, $N, 2);

}

print odds(10)[2]; //ошибка

$tmp = odds(10);

print $tmp[2]; // работает

Эта проблема, скорее всего, не будет решена, так как PHP, в отличие от других языков программирования, позволяет работать не только с индексными массивами, но и с ассоциативными. Однако PHP поддерживает конструкцию list(), предлагающую концептуально иной способ работы с массивами, предоставляя разработчику возможность поместить элементы массива сразу в переменные.

3.3 Macromedia Flash

World Wide Web (Всемирная паутина) развивается очень стремительно. Традиционные Web-сайты (Web-sites) со статическими информационны­ми страницами уже не привлекают как прежде внимание конечных поль­зователей. Поэтому Web-дизайнеры и разработчики пытают­ся придать своим страницам неотразимый вид, вводя графику и файлы анимационного формата GIF. Несмотря на то, что применение графики в традиционных форматах сжатия изображений GIF, JPEG и PNG придает сайту некоторый эффект, тем не менее, загрузка таких страниц может от­нять много времени из-за больших размеров графических файлов. Альтернативным инструментом создания анимации является программный продукт— Macromedia Flash, ко­торый поможет добиться поставленных при Web-разработке целей.

По сравнению с другими графическими приложениями, предназначенными для публикации результатов в Web или вывода в файл, Flash обладает многими преимуще­ствами, такими, как:

  • Применение векторной (vector) графики, которая в действительности представляет собой ряд математи­ческих формул, описывающих размер, цвет и местоположение формы. Векторная графика состоит из линий и кривых, тогда как растровая (bitmapped) — из небольших точек растра, или пикселей (pixels). Применение математических формул явля­ется главным преимуществом отображения графики и сохранения не­большого размера файлов, что особенно важно для Web.

  • Возможность сжатия анимации, графики и звука. Такое сжатие файла обусловливает свойство по­токовой передачи (streaming), которое позволяет отображать сайт в Web-броузере до полной загрузки его содержимого. Это означает, что одна векторная графика сайта отображается, в то время как другая графика, звук и анимация все еще загружаются.

Интерактивность во Flash может состоять из самых разных свойств. Помимо неограниченных возможностей применения простой графики, анимации или крупных заголовков, в любой объект или область сайта можно вводить полноценные навигационные свойства: кнопки, меню или фрагменты анимации, с помощью которых конечный пользователь перемещается по сайту. А задавая действия (actions), можно создавать интерактивные фильмы. Для создания интерактивных элементов управления во Flash предоставляется язык создания сценариев - ActionScript.

Изображения и тест, разработанные во Flash, всегда отображаются ясно и четко, что опять же обусловлено векторной графикой.

Flash помогает пользователю ри­совать. В частности, Flash может распознавать основные геометрические формы в про­цессе их создания. При этом она заменяет небрежно нарисованную форму правильной геометрической формой, которую, как предполагается, пользователь пытается нарисо­вать. Например, если быстро нарисовать овал или окружность, создав круглую форму, Flash сделает эту форму более плавной и круглой, доведя ее до идеального овала или ок­ружности. Кроме того, Flash помогает создавать прямые и плавные линии.

В состав Flash входит инструмент, который создает основу для большинства качественных Flash-фильмов. Этот инструмент – ActionScript - событийно-управляемый язык, встроенный во Flash. ActionScript делает ваши страницы интерактивными. Вы можете реагировать на события с мышки или с клавиатуры, можете выполнить какие-либо действия при проигрывании определенного кадра.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]