|
Программирование >> Программный интерфейс приложений
представлении, и РНР-кода, который выполняется как профамма. Клиентской профамме посылаются результаты работы кода. Таким образом, клиент никогда не видит самого кода, он видит только результат его работьг Начав чтение файла, РНР просто копирует его содержимое с допущением, что все содержимое файла представляет литеральный HTML. Когда интерпретатор РНР находит тэг открытия, он переключается с режима HTML на режим кода РНР и начинает интерпретировать файл как исполнимый код РНР. Окончание кодовой части идентифицируется другим специальным тэгом, встретив который, интерпретатор переключается обратно в режим HTML. Это позволяет объединять статический HTML-текст (HTML-часть) с динамически генерируемыми результатами (результат выполнения части РНР-кода) для генерации страниц, содержимое которых изменяется в зависимости от условий, при которых они активизируются. Например, сценарий РНР можно применить для обработки результата ввода формы, в которую пользователь ввел парамефы для осуществления поиска в базе данных. Парамефы поиска могуг варьироваться в зависимости от заполнения формы, таким образом, каждый раз, когда сценарий осуществляет поиск, результирующая Сфаница будет отображать разные результаты. Посмофим, как это работает на примере простейщего сценария РНР: <HTML> <BODY> hello, world </BODy> </HTML> Этот сценарий не представляет особого интереса, так как он не содержит РНР-кода. Что же тогда есть примечательного в этом сценарии? Это резонный вопрос. Ответ заключается в том, что иногда очень полезно начать с создания простой заготовки, содержащей только HTML-код, а потом, по необходимости, добавлять код РНР. Этот метод имеет право на жизнь , ведь интерпретатор РНР работает безошибочно и с таким кодом. Для включения кода РНР его необходимо отличить от окружающего его текста. Для этого применяются два специальных тэга: <?php для отметки начала сценария и ?> для заверщения сценария Когда интерпретатор РНР обнаруживает открывающий тэг <?php , он переключается с режима HTML на режим РНР и интерпретирует все, что попадается на его пути как код РНР до тех пор, пока не увидит закрывающий тэг ?> . Текст сценария, находящийся между тэгами, интерпретируется и замещается результатом его работьг Предьщущий пример можно переписать таким образом, чтобы он включал небольшой код РНР: <HTML> <BODY> <?php print ( hello, worldXn ); ?> </BODY> </HTML> В этом случае кодовая часть минимальна и состоит из одной строки. Интерпретация этого кода генерирует текст hello, world. Он и будет послан на броузер клиента. Таким образом, Web-страница, генерируемая этим сценарием, идентична результату, сгенерированному кодом, приведенным в предыдущем примере, в котором сценарий состоял только из HTML-кода. Код РНР можно применять для генерирования любой части Web-страницы. Мы уже приводили пример, в котором полностью отсутствовала РНР-часть, где весь сценарии состоял только из литерального HTML-кода Вот другая крайность - пример, когда есть только РНР-код и полностью отсутствует литеральная HTML-часть: <?php print ( <HTML>\n ); print ( <BODY>\n ); print ( hello, worldXn ); print ( </BODY>\n ); print ( </HTML>\n ); ?> Это свидетельствует о том, что РНР представляет нам возможность варьировать методы генерации результирующего вывода и то, как их применять и в какой пропорции прибегать к помощи кодов HTML и РНР. Язык РНР проявляет свою гибкость еще и в том, что отсутствует требование размещать весь код компактно в одном месте, таким образом, переключение между кодами HTML и РНР может производиться по несколько раз. * Тэги сценария РНР Кроме представленных здесь тэгов, интерпретатор РНР различает и другие тэги Язык РНР различает четыре стиля тэгов Стиль по умолчанию. Это стиль по умолчанию, используемый РНР <?php print ( hello, world\n ); ?> Стиль с укороченным тэгом открытия. Этот стиль аналогичен стилю по умолчанию, но в нем тэг открытия представлен в укороченной форме <? print ( hello, world\n ); ?> Стиль, совместимый с ASP Этот стиль аналогичен стилю, который применяется в среде Active Server Page <% print ( hello, world\n ); %> Стиль тэгов <SCRIPT> Этот стиль предназначен для использования с редактором HTML, который не воспринимает никакого другого стиля тэгов Определенно это более многословный стиль, но к нему придется прибегнуть, если этот редактор не может обработать ваш код РНР, когда используются другие стили тэгов <SCRIPT LANGUAGE= php > print ( hello, worldXn ); </SCRIPT> Стиль с укороченным тэгом открытия и стиль, совместимый с ASP, не работают по умолчанию Как их активизировать, можно узнать в приложении 3, Программный интерфейс языка РНР Автономные сценарии РНР Существует возможность создавать автономные сценарии РНР, вызываемые из командной строки, так как это делается со сценарием оболочки или сценарием Perl. Вот пример: #! /usr/local/bin/php -q <?php print ( hello, world\n ); ?> Назовем этот сценарий hello.php, с помощью команды chmod +х сделаем его исполнимым и вызовем из оболочки: % hello.php hello, world Но в этой главе такие сценарии не будут упоминаться. Все примеры разработаны в расчете на то, что они будут активизироваться Web-сервером для генерации Web-страниц. Следующие сценарии немного более функциональны, но все же по-прежнему относительно коротки. Они демонстрирует легкость, с которой РНР позволяет осуществлять доступ к СУБД MySQL и отображать результаты запросов на Web-странице. Вот сценарий, который бьш очень кратко представлен в главе 5, Введение в программирование в СУБД MySQL . Он играет роль простой заготовки для создания Web-узла Исторической Лиги . По мере повествования этот сценарий будет усложняться, но пока в его функции входит печать короткого пр1ветствия и количества членов Исторической Лиги на данный момент: <HTML> <HEAD> <Т1ТЬЕ>Историческая Лига США </TITLE> </KEAD> <BODY> <Р>Добро пожаловать на Web-уэел Исторической Лиги <?php $link = @mysql pconnect ( pit-viper.snake.net , paul , secret ) or exit (); mysql select db ( samp db ) or exit (); Sresult = mysql query ( SELECT COUNT(*) FROM member ) or exit (); if ($row = mysql fetch array ($result)) echo <P>Ha данный момент в лиге состоит . $row[0] . членов ; mysql free result ($result); ?> </BODY></HTML> Текст приветствия является просто статическим текстом, таким образом его легче всего отобразить литералом в формате HTML. Однако счетчик членов динамический и время от времени изменяется, таким образом, он должен вычисляться на лету после запроса к таблице member из базы данных samp db.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |