Июнь 2010

Самоучитель по креативному веб-дизайну. Книга 3, стр.105



Глава 9. Java-аплеты и объекты ActiveX 4 8 7



ИспользованиетолькообъектовActiveX

в Internet Explorer

Одна из сложностей использования объектов ActiveX на Web-страницах зак — лючается в поддержке пользователей, работающих в Netscape. Как вы уже знаете, прежде чем Netscape сможет использовать объект ActiveX, должен быть выгружен подключаемый модуль, поддерживающий объект. К сожалению, не все подклю — чаемые модули поддерживают все объекты ActiveX. Например, элемент управле — ния Microsoft Marquee (рамка) позволяет отображать содержимое Web-страницы

по вертикали, по горизонтали или по диагонали внутри прямоугольной области

на Web-странице, как показано на рис. 9.23. Элемент управления Microsoft Marquee отображает текст, фон и графические изображения, как посетитель ви — дел бы их, посетив саму Web-страницу. Таким образом, элемент управления Marquee дает возможность прокручивать текст, равно как и графические изобра — жения, в виде меняющегося баннера. К сожалению, многие из подключаемых

модулей для Netscape не поддерживают элемент управления Marquee.





Чтобы использовать на Web-странице элемент управления Microsoft Marquee,

обычно понадобится сначала создать HTML-файл с содержимым, которое вы хо — тите прокручивать в рамке. Затем в HTML-файл страницы, внутри которой необ — ходимо поместить рамку, помещается приведенный ниже HTML-код, причем в

то место страницы, где должно находиться прокручиваемое содержимое (замени-

те URL-адрес в параметре szURL на URL-адрес HTML-страницы, содержимое ко- торой требуется прокручивать):

48 8 Глава 9. Java-аплеты и объекты ActiveX





height=»260″

classid=»clsid:la4da620-6217-llcf-be62-0080c72edd2d»>

value=»http://www. NVBizNet. com/HWDTT

/Booklnformation. htm»>

value-»300″>



param name=»LoopsY» value=»-l»>

name=»ScrollPixelsX» value=»0″>

value=»-10″>



param name=»Zoom» value=»100″>



Для настройки элемента управления Marquee предназначены следующие пара — метры:

• SZURL. URL-адрес исходной Web-страницы, которая должна отображаться

в рамке.

• ScroiiDeiay. Время (в миллисекундах) между обновлениями.

• Loopsx Сколько раз программа должна прокрутить содержимое по верти —

кали. Значение -1 обозначает «прокручивать постоянно».

• LoopsY. Сколько раз программа должна прокрутить содержимое по гори —

зонтали. Значение -1 обозначает «прокручивать постоянно».

• scroiiPixeisx. Число пикселей, на которое программа должна сдвигать содержимое рамки по горизонтали в каждом цикле обновления. При отри — цательном значении содержимое будет прокручиваться справа налево, при положительном — слева направо.

Самоучитель по креативному веб-дизайну. Книга 3, стр.106

• scroiiPixeisY. Число пикселей, на которое программа должна сдвигать

содержимое рамки по вертикали в каждом цикле обновления. При отрица — тельном значении содержимое будет прокручиваться по направлению вверх, при положительном — вниз.

• whitespace. Размер интервала (в пикселях), который программа должна оставлять между последовательными копиями исходной Web-страницы.

• zoom. Увеличение или уменьшение (в процентах) размера исходной Web- страницы внутри рамки.



ПРАКТИКУМ

Одно из решений проблемы, связанной с использованием объектов ActiveX, —

внедрять объекты только для тех пользователей, которые работают в Internet

Explorer. В вышеприведенном дескрипторе, например, использование объекта на странице для браузеров Netscape предотвращается тем, что дескрип-

тор, которого требует Netscape, опущен. Вместо того чтобы попросту иг — норировать пользователей Netscape, можно сделать так, чтобы ваша Web-страни-

ца выполняла одну операцию (такую как внедрение объекта ActiveX) для пользователей Internet Explorer, и другую (такую как загрузка аналогичного Java — аплета) для пользователей Netscape.

Глава 9. Java-аплеты и объекты ActiveX 489



Например, в приведенной ниже активной серверной странице при помощи

значения HTTP USER_AGENT определяется информация о браузере пользователя.

Если строка, возвращенная функцией, содержит буквы MSIE, сценарий знает, что посетитель пользуется Microsoft Internet Explorer, и помещает в HTML-файл опе — раторы, внедряющие объект ActiveX. Если используется другой браузер (не Internet Explorer), сценарий объект не внедряет:



















Глава 10. РНР4 491





— это инструментальное средство, которое позволяет создавать Web —

страницы «на лету». В прошлом Web-сайты состояли из статических стра — ниц, содержащих текст, графические изображения и, возможно, зрелищные (но неизменные) мультимедиа-эффекты и анимацию. Сегодня посетители имеют дело со страницами, которые позволяют им хранить и осуществлять поиск в

базах данных и генерировать новое Web-содержимое, основываясь на выпол — ненных посетителем запросах и при использовании ресурсов системы посети — теля. РНР (первоначально аббревиатура от Personal Home Page — персональная домашняя страница) представляет собой гипертекстовый препроцессор, кото-

Самоучитель по креативному веб-дизайну. Книга 3, стр.107

рый позволяет генерировать Web-содержимое «на лету». Операторы, предназна- ченные для обработки PHP-процессором, хранятся в отдельном файле или внедряются в HTML-код Web-страницы.

На рис. 10.1 показаны операции, выполняемые при загрузке и выводе на эк — ран PHP-страницы. При запросе PHP-страницы (т. е. страницы, расширение фай —

ла которой связано с PHP-процессором; как правило, это расширение. php) Web-браузером Web-сервер передает запрос PHP-процессору. Процессор, в свою

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

в памяти Web-сервера, которая, в конце концов, будет передана Web-браузеру).

За счет того, что после передачи Web-серверу запроса Web-браузера на загруз —

ку Web-страницы с РНР-кодом, PHP-процессор генерирует HTML-код Web-стра — ницы, вы получаете возможность генерировать страницы, содержащие HTML — код, специфический для используемого посетителем браузера, а также страницы,

содержимое которых зависит от конкретного посетителя или от времени суток.



1) Web-браузер передает Web-серверу HTTP-запрос на Web-страницу с РНР-кодом.

2) Web-сервер передает запрос Web-страницы РНР-процессору.

3) PHP-процессор находит и извлекает Web-страницу.

4) PHP-процессор выполняет PHP-операторы, содержащиеся на странице

(т. е. в файле с расширением. php) .

5) PHP-процессор передает новую Web-страницу Web-серверу.

6) Web-сервер передает созданную РНР-обработчиком страницу Web-браузеру.

Рис. 10.1. Обработка РНР-страницы

49 2 Глава 10. РНР4





Другими словами, технология РНР дает возможность превратить Web-сайт из на — бора статических Web-страниц в выполняемое на сервере приложение, интерфейс которого представляет собой Web-страницы.

Предположим, например, что на Web-странице необходимо вывести текущее время. Если страница будет статической (использующей стандартный язык HTML), потребуется потратить целый рабочий день на обновление страницы (один раз в минуту), чтобы при просмотре страницы посетителем на ней отобража — лось текущее время. За счет использования оператора РНР, который динамически записывает текущее время на Web-страницу после запроса ее посетителем, вы заста — вите PHP-процессор автоматически обновлять время на странице. После получения запроса PHP-процессор на основе Web-страницы, содержащейся в файле, создает

страницу, в которой находятся не PHP-операторы (т. е. статическое содержимое),

и помещает в нее время, возвращаемое встроенной функцией РНР date() .

В то время как клиентские языки сценариев (например, JavaScript) выполня-

ются Web-браузером, РНР представляет собой серверный язык, т. е. РНР-сцена — рий, внедренный на Web-страницу, выполняется Web-сервером (а не Web-браузе —

ром). В техническом смысле РНР является межплатформенным серверным языком сценариев, что означает:

• Большинство PHP-кода может выполняться под управлением различных операционных систем, в частности, Linux, Mac OS, RISC OS, Unix и Windows, без необходимости внесения изменений на Web-сервере.

• PHP-операторы могут внедряться на Web-страницу совместно или отдельно

от HTML-, XHTML — и XML-дескрипторов, которые используются для оп — ределения страницы для Web-браузеров.

• При запросе Web-браузером страницы с внедренными РНР-операторами, Web-сервер передает запрос РНР-процессору. PHP-процессор находит зап — рошенный файл, заменяет операторы результатом их выполнения (если ре — зультат выполнения имеется) и передает полученную страницу Web- серверу. Web-сервер передает данные, полученные от РНР-процессора, Web-браузеру посетителя.

Самоучитель по креативному веб-дизайну. Книга 3, стр.108



Изящество использования РНР заключается в том, что Web-браузер не рабо —

тает с РНР-операторами, внедренными на Web-страницу. В отличие от JavaScript, VBScript, JScript или других клиентских языков сценариев, при написании РНР — сценариев вам не нужно беспокоится о поддержке Web-браузером языка РНР. Для создания страницы, использующей РНР, необходимо просто вставить на страницу PHP-команды, которые должны выполняться в HTML-коде страницы,

и присвоить файлу Web-страницы имя с расширением, связанным с РНР-про —

цессором (например, .php). При запросе Web-браузером файла Web-страницы с

расширением. php Web-сервер знает, что документ сначала должен быть передан

на обработку РНР-процессору, а затем результаты, полученные от РНР-процессо — ра, передаются Web-браузеру с целью визуализации. PHP-процессор выполняет

операторы РНР и гарантирует, что переданная Web-серверу Web-страница (кото — рая в конечном счете передается Web-браузеру) содержит дескрипторы, поддер — живаемые Web-браузером.

Глава10.РНР4 49 3



История PHP

Изучив достаточно короткую историю РНР, можно понять, каким образом ис- токи языка влияют на его современное использование. Когда-то, в 1994 году,

Расмус Лердорф (Rasmus Lerdorf) написал несколько сценариев на Perl, позволя — ющих определять, кто посещает его личную Web-страницу. Со временем все

большее и большее количество Web-дизайнеров стали интересоваться его сцена —

риями, и весной 1995 года Лердорф обнародовал их в виде пакета с названием

Personal Home Package Tools (отсюда и появилось название РНР). Первоначаль-

ный пакет средств РНР, который Лердорф называл «оболочкой для CGI, напи — санной на Perl», содержал в своем составе несколько серверных макросов и про — стых утилит, например, счетчик посещений и гостевая книга.

В связи с растущим интересом к Perl-сценариям, Лердорф переписал свой синтаксический анализатор и создал средство обработки результатов HTML — форм, которое он назвал интерпретатором форм (Form Interpreter, FI), а также

ввел поддержку баз данных mSQL. Комбинированный пакет, выпущенный в свет

в середине 1995 года, получил имя PHP/FI или РНР2. Вскоре после этого Web-

разработчики начали использовать пакет для решения все более и более слож —

ных задач. Политика «открытого кода» позволила группе разработчиков под ру- ководством Зива Сураски (Zeev Suraski) и Энди Гутманса (Andi Gutmans) в 1997 года снова переписать PHP-процессор. Созданный ими код стал основой для РНРЗ (т. е. РНР версии 3), который был принят более чем 1 000 000 Web-сайтов по- мимо других серверных языков сценариев, в частности, активных серверных страниц (Active Server Pages, ASP) компании Microsoft и ColdFusion компании Allaire.

Самоучитель по креативному веб-дизайну. Книга 3, стр.109

Последняя версия РНР (РНР4, т. е. РНР версии 4) распространяется бесплат — но (на многих Web-сайтах, в том числе http://www. PHP. net) и имеет открытый кой, т. е. вы при желании можете выгрузить исходный код РНР и посмотреть, что делается «за кулисами». Тем не менее, бесплатное распространение и открытость исходного кода — это не основная причина того, что РНР в настоящее время ис — пользуется на более чем 6 000 000 доменах. РНР стал главным серверным язы- ком сценариев для многих Web-серверов по следующим причинам:

• Язык РНР может выполняться как на платформе Windows NT, так и на платформе Unix, что позволяет создавать сложные Web-сайты практически для любой платформы.

• Язык РНР обладает простым и в то же время элегантным объектно-ориен — тированным синтаксисом, описанным во многих источниках (как в книгах различных авторов, так и в сети Internet). Более того, конструкции языка РНР знакомы многим разработчикам, работающим с процедурными или объектно-ориентированными языками программирования. Таким образом,

если вы знаете С, C++ , Java, Pascal или Visual Basic, написание сценариев

и функций РНР не представит для вас больших трудностей — вам не будет

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

• Язык РНР оптимизирован для Web-разработчиков, позволяя выполнять

сложные задачи с помощью вызовов нескольких функций (вставленных в

49 4 Глава 10. РНР4





HTML-код Web-страницы), что на других языках может быть сделано только при глубоких знаниях языка и с помощью достаточно громоздкого кода.

• Язык РНР очень быстр. В отличие от активных серверных страниц, кото-

рые приводят к снижению производительности IIS-сервера при одновре — менной обработке нескольких сложных ASP-страниц, PHP-страницы могут компилироваться, оптимизироваться и кэшироваться в памяти, что позво — ляет серверу одновременно обрабатывать большое количество РНР-страниц

Самоучитель по креативному веб-дизайну. Книга 3, стр.110

без существенного снижения производительности. ^Ш



Загрузка и установка РНР

Цель этой главы заключается в том, чтобы обучить создавать динамическое Web-содержимое. Тем не менее, перед использованием РНР вам понадобится ра — ботающий Web-сервер, собственно РНР и (возможно, система управления базами данных (СУБД) на основе SQL), например, MySQL. Рассмотрение загрузки и ус — тановки Web-сервера, РНР и MySQL на нескольких платформах выходит за рам — ки данной книги. Фактически, за вас все эти операции выполняет Internet-про — вайдер. Тем не менее, в некоторых случаях для внедрения РНР и MySQL вашим

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

Ели вы работаете на платформе Linux или Unix, вашим Web-сервером, скорее всего, будет Apache, который ваш Internet-провайдер бесплатно выгрузил с сайта компании Apache Software Foundation (http://www. apache. org). Если же вы ра —

ботаете на платформе Windows (NT/2000/XP), вероятнее всего, вашим сервером

будет IIS-сервер компании Microsoft. Если провайдер не установил IIS-сервер

при установке операционной системы Windows, необходимый пакет версии 4.0

можно выгрузить как часть пакета обновлений NT Option Pack с сайта компании

Microsoft (http://www. microsoft. com/ntserver/nts/downloads/recommended/

NT4OptPk/). (Обратите внимание, что на компакт-дисках большинства операци — онных систем Windows, в частности, Windows 2000 Professional, Windows 2000

Server и Windows XP Professional содержится последняя версия IIS-сервера.)

После установки программного обеспечения Web-сервера ваш Internet-провай — дер может выгрузить и установить РНР. При использовании операционных сис — тем Linux и Unix провайдер должен будет не только выгрузить исходный код РНР, но и выполнить его компиляцию с помощью компилятора языка ANSI С,

Самоучитель по креативному веб-дизайну. Книга 3, стр.111




Самоучитель по креативному веб-дизайну. Книга 3, стр.112

ким образом, любой из начальных дескрипторов РНР ( ianguage=MphpM>) указывает Р HP-процессору выполнять последующие операторы

Глава 10. РНР4 497



HTML-кода Web-страницы. PHP-процессор будет выполнять все операторы до соответствующего конечного дескриптора (?> или ).

Приведенный ниже код использует каждый из наборов начальных и конечных

дескрипторов РНР для генерации HTML-кода страницы, которая показана на рис. 10.3. Обратите внимание, что ни один из начальных дескрипторов РНР

(имеют «закрывающего» знака больше (>), которые присутствуют в

конце нормальных HTML-дескрипторов. (То есть начальные дескрипторы РНР

имеют форму , .) Аналогично, конечный дескриптор

РНР?> це имеет «открывающего» знака меньше (







Начальный и конечный дескрипторы PHP





HTML & Web Design Tips & Techniques

» ;

echo «Текущая дата: «; ?>

?php echo giriDateC’l, Fd, Y.») ;

echo «

Текущее время: «;

49 8 Глава 10. РНР4





Обратите внимание, что Web-страница, передаваемая РНР-процессором

Web-северу с целью последующей передачи ее браузеру, содержит HTML-деск —

рипторы и текст, а не опбраторы, предназначенные для выполнения РНР- процессором. (Код Web-страницы, полученной Web-браузером от Web-сервера

можно просмотреть, выбрав в меню Internet Explorer пункт View | Source

(Вид | В виде HTML) или в меню Netscape Navigator пункт View | Page Source

(ВИД | HTML-код страницы).)

Синтаксис РНР

РНР-сценарии в HTML-коде Web-страницы, приведенном в конце предыду —

щего раздела, демонстрируют два важных момента. Во-первых, РНР-сценарии можно внедрять в HTML-код за счет определения кода сценариев между началь — ным и конечным дескрипторами РНР ( или ) или начальным и

конечным HTML-десКрИПТОраМИ Сценария (…). Во-вторых, в РНР-сценарии можно внедрять HTML-дескрипторы. При этом они заключаются в кавычки и отмечаются PHP-оператором echo. Оператор echo «вы —

водит» HTML-дескрипторы в HTML-код Web-страницы, которую РНР-процессор

передает Web-серверу. Например, следующая строка вставляет в HTML-код Web — страницы дескриптор горизонтальной линейки ():



«; ?>



Использование терминатора для операторов — точки с запятой (;)

Независимо от того, внедряется ли сценарий в HTML-код (XHTML — или XML-код) самой Web-страницы или находится в отдельном файле, каждый опе — ратор в РНР-сценарии (включая последний) должен завершаться символом точ — ки с запятой (;). Таким образом, синтаксис PHP-сценария, состоящего из одно —

Самоучитель по креативному веб-дизайну. Книга 3, стр.113

го оператора будет выглядеть следующим образом:



начальный дескриптор сценарияХРЯР-олерагор>;



а синтаксис сценария из нескольких операторов будет иметь следующий вид:



начальный дескриптор сценария> ; ;

; ;



Как видно из приведенных примеров синтаксиса, в одной строке можно раз — мещать несколько PHP-операторов, при этом каждый из них обязательно должен

завершаться символом точки, с запятой (;). Тем не менее, чтобы код выглядел более читабельным, рекомендуется в каждой строке помещать по одному опера —

тору (как было продемонстрировано в коде из предыдущего раздела).

Использование управляющего символа обратной косой черты (\)

Как говорилось в предыдущем разделе, HTML-дескрипторы можно внедрять в

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


PHP — это чистой воды «бомба» !» ; ?>

Глава 10. РНР4 49 9





PHP будет считать, что кавычка («) перед буквой б в слове «бомба» говорит

об окончании текста, который оператор echo должен поместить на страницу, а оператора бомба не существует.

Для включения кавычки (или другого символа, который должен просто встав — ляться на страницу, а не интерпретироваться PHP-процессором) в текст, сам по

себе заключенный в кавычки, перед кавычкой (или символом) следует поставить обратную косую черту (\). Например, чтобы на Web-странице выводился текст

«РНР — это чистой воды «бомба»!», предыдущий оператор потребуется пе — реписать в виде:


PHP — это чистой воды \»бомба\» !»; ?>



Вставка комментариев в РНР-сценарий

В РНР существуют три символа, которые позволяют помещать в код коммен —

тарии: «#» , «// » и «/*…*/» . Вставка комментариев в PHP-сценарии — это весьма полезная привычка. Несмотря на то что комментарии игнорируются PHP-процессором, они напоминают вам (и другим людям), почему определен — ные фрагменты сценария были написаны именно таким образом, или же говорят

о назначении сценария в целом. Кроме того, комментарии могут использоваться

в процессе разработки для обнаружения операторов, вызывающих ошибки РНР —

процессора. Комментируя отдельные фрагмен т кода (т. е. указывая процессору

игнорировать эти фрагменты как комментарии) можно добиться «устранения» ошибки. Затем путем постепенного вывода из комментариев строк кода сцена — рия до момента повторного появления ошибки процессора можно определить строку, в которой эта ошибка происходит. Это будет последняя строка, выведен — ная из комментариев, до появления ошибки.

Самоучитель по креативному веб-дизайну. Книга 3, стр.114



HTML and Web Design Tips & Techniques



Этот сценарий предназначен для вывода на экран текущей системной даты

——^



# Знак «решетки» (#) позволяет вставлять одну строку комментария.

// То же самое относится и к двойной косой черте (//) . При использовании

// дескриптора однострочного комментария (// или #) его необходимо

// помещать в каждую строку комментария.

/* При необходимости вставки многострочного комментария без помещения символов # или //в каждой строке используется оператор комментария

языка С /*. После него РНР процессор будет игнорировать все вплоть до конечного оператора комментариев */

echo «

«;

?>



Полезные ссылки
Случайные записи
  • 06.03.2011">Руководство по actionscript. часть 4, стр. 135
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 098
  • 21.03.2011">Руководство по actionscript. часть 2, стр. 038
  • 04.03.2011">Руководство по actionscript. часть 5, стр. 034
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 044
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.81
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.6
  • 04.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.9
  • 02.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.107
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 121
  • 16.03.2011">Руководство по actionscript. часть 3, стр. 018
  • 26.02.2011">Руководство по actionscript. часть 6, стр. 054
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 082
  • 03.12.2012">Где расслабиться после работы?
  • 09.06.2011">Acer Ferrari 1000
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...