Давайте сделаем что-нибудь полезное. К примеру, определим, какой браузер использует тот, кто смотрит в данный момент нашу страницу. Для этого мы проверим строку с именем браузера, посылаемую нам в HTTP-запросе. Эта информация хранится в переменной. Переменные в PHP всегда предваряются знаком доллара. Интересующая нас в данный момент переменная называется $_SERVER['HTTP_USER_AGENT'].
Замечание:
$_SERVER - специальная зарезервированная переменная PHP, которая содержит всю информацию, полученную от Web-сервера. Ее также называют суперглобальной. Для более подробной информации смотрите раздел "Суперглобальные переменные". Эти специальные переменные появились в PHP, начиная с версии » 4.1.0. До этого использовались массивы $HTTP_*_VARS, такие как $HTTP_SERVER_VARS. Эти массивы, несмотря на то, что они уже устарели, до сих пор существуют (см. замечания по старым программам).
Для вывода данной переменной мы сделаем так:
Пример #1 Вывод значения переменной (элемента массива)
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
Пример вывода данной программы:
В PHP есть огромное количество типов переменных. В предыдущем примере мы печатали элемент массива. Массивы могут быть очень полезны.
$_SERVER - просто переменная, которая предоставлена вам языком PHP. Список таких переменных можно посмотреть в разделе "Зарезервированные переменные" или просмотрев вывод функции phpinfo(), используемой в примере в предыдущем разделе.
Внутрь PHP-тегов можно помещать несколько выражений и создавать маленькие блоки кода, делающие больше, чем простой вызов echo. Например, если вы хотите добавить проверку для Internet Explorer, можно сделать так:
Пример #2 Пример использования управляющих структур и функций
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
echo 'Вы используете Internet Explorer.<br />';
}
?>
Пример вывода данной программы:
Вы используете Internet Explorer.<br />
Здесь мы показали несколько новых элементов. Во-первых, здесь есть конструкция if. Если вам знаком основной синтаксис языка C, то вы уже заметили что-то схожее. Если же вы не знаете C или подобного по синтаксису языка, то лучший вариант - взять какую-либо вводную книжку по PHP и прочитать первые пару глав. Другой вариант - почитать раздел "Описание языка" данного руководства.
Во-вторых, здесь есть вызов функции strpos(). strpos() - встроенная в PHP функция, которая ищет одну строку в другой. В данном случае мы ищем строку 'MSIE' (так называемую "иголку" - needle) в $_SERVER['HTTP_USER_AGENT'] (в так называемом "сене" - haystack). Если "иголка" найдена внутри "сена", функция возвращает позицию "иголки" относительно начала "сена". Иначе она возвращает FALSE. Если она не вернет FALSE, то условие в if окажется истинным (TRUE), и код в фигурных скобках ({ }) выполнится. В противном случае данный код не выполняется. Попробуйте создать аналогичные примеры с использованием команд if, else, и других функций, таких, как strtoupper() и strlen(). Также примеры содержатся во многих описаниях функций в данном руководстве. Если вы не знаете как использовать функции, возможно, вы захотите прочесть страницу руководства о том, как читать определения функций и раздел о функциях в PHP.
Продемонстрируем, как можно входить в режим кода PHP и выходить из него, даже прямо внутри блока с кодом:
Пример #3 Смешение режимов HTML и PHP
<?php
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
?>
<h3>strpos() должно быть вернул не false</h3>
<p>Вы используете Internet Explorer</p>
<?php
} else {
?>
<h3>strpos() вернул false</h3>
<p>Вы не используете Internet Explorer</p>
<?php
}
?>
Пример вывода данной программы:
<h3>strpos() должно быть вернул не false</h3> <p>Вы используете Internet Explorer</p>
Вместо использования команды PHP echo для вывода, мы вышли из режима кода и просто послали содержимое HTML. Важный момент здесь - то, что логическая структура кода PHP при этом не теряется. Только одна HTML-часть будет послана клиенту в зависимости от результата функции strpos() (другими словами, в зависимости от того, найдена была строка MSIE или нет).