Самоучитель по креативному веб-дизайну. Книга 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 «

«;

?>

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



HTML & Web Design Tips & Techniques





// Создать строковую переменную —

$author name = «Konrad King»;

// Создать целочисленную переменную

$family member_count = 3;

// Создать массив

$pets_names[0] = «Samantha»;

$pets_names [1] = «Caesar»;

$pets_names [2] = «Floppy»;

// Создать переменную для хранения значения с плавающий точкой

// (т. е. вещественную переменную или переменную двойной точности)

$years in_Nevada = 7.5;

// Вывести все переменные на Web-страницу

echo «$author narne, автор множества книг по компьютерной инженерии, «;

echo «проживаем в штате Невада на протяжении $years_in Nevada лет.»;

echo «

Его семья насчитывает $family_member_count человек, «;

echo «а кроме того, троих животных с кличками: «;

echo «$pets names [0] , $pets names [1] и $pets names [2] » ;

?>

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

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







Условная и циклическая обработка

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

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





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

Для принятия решений сценарии должны выполнять проверку определенного рода. Например, один сценарий может проверять правильность введенного посетителем пароля, а второй — верное ли количество цифр ввел посетитель в номере телефона. Для выполнения таких проверок сценарий будет использовать приведенные выше операции сравнения. Операции сравнения позволяют опреде- лить, каким образом одно значение соотносится с другим. Другими словами, с помощью операций сравнения PHP-процессор проверяет равно, больше или меньше одно значение другого. При выполнении процессором операций сравне- ния для сравнения двух значений результат выражается значениями tru e и

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

false, Т. е. Значения соответствуют (true) ИЛИ Не соответствуют (false).

Тесно связана с процессом принятия решений в сценарии и возможность по — вторения выполнения одного или нескольких операторов определенное количе — ство раз или до возникновения известного состояния. Оператор while позволяет организовать цикл, выполняемый процессором до тех пор, пока определенное условие соблюдается. Оператор for дает возможность организовать цикл, в кото- ром PHP-процессор выполняет набор операторов определенное число раз.



Использование оператора if для проверки условия

Оператор if позволяет использовать операции сравнения РНР для указания PHP-процессору на необходимость проверки условия, а затем выполнения опера — торов, основываясь на результатах проверки. Если проверка дает true, процессор будет выполнять операторы, находящиеся после if. В противном случае, если проверка дает false, процессор пропускает операторы после if. Формат опера —

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



if (условие)

оператор;



Обратите внимание, что в конце строки if (условие), с которой начинается оператор if, точка с запятой (;) не ставится, поскольку оператор продолжается

на следующей строке.

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

ях при соблюдении условия выполнятся только один оператор; в других же ситу — ациях выполняемых в случае соблюдения условия операторов может быть не —

сколько. Когда сценарий указывает процессору ВЫПОЛНИТЕ ТОЛЬКО ОДИН оператор, следующий за if, используется простой оператор:



if ($state == «са»)

echo «Был введен код штата Калифорния.»;

Чтобы процессор при соблюдении условия выполнял несколько операторов, их необходимо сгруппировать с помощью фигурных скобок ({}). Операторы, заключен —

ные в скобки, называются составным оператором, пример которого показан ниже:



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





if ($username!= «Konrad»)

{

header(«Location: http://NVBizNet. com/htmlwdtt/InvalidUser. htm»);

exit





ПРИМЕЧАНИЕ Запоминание терминов «простой оператор» и «составной оператор» не

является обязательным, тем не менее, важно знать, что связанная группа операторов долж — на заключаться в фигурные скобки ({}) .



В двух предыдущих примерах процессор использует операторы if для опреде — ления необходимости выполнения одного или нескольких операторов. В первом примере, если условие соблюдается, процессор помещает на Web-страницу текст. Аналогично, во втором примере, если условие соблюдается, т. е. значение пере —



Полезные ссылки
Случайные записи
  • 05.03.2011">Руководство по actionscript. часть 5, стр. 022
  • 27.08.2010">Советы начинающему дизайнеру.
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 021
  • 02.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.122
  • 23.02.2011">Руководство по actionscript. часть 7, стр. 035
  • 16.03.2011">Руководство по actionscript. часть 3, стр. 021
  • 25.05.2011">Мини-обзор нового ноутбука Sony Vaio P
  • 11.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.6
  • 15.01.2011">Зачем используется раскройка изображения в Photoshop и как ее сделать?
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.37
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 015
  • 27.02.2011">Руководство по actionscript. часть 6, стр. 025
  • 10.03.2011">Руководство по actionscript. часть 4, стр. 023
  • 06.03.2011">Руководство по actionscript. часть 4, стр. 152
  • 28.02.2011">Руководство по actionscript. часть 6, стр. 021
Опрос

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

View Results

Loading ... Loading ...