|
|
Давайте сделаем что-нибудь полезное. К примеру, определим, какой
браузер использует тот, кто смотрит в данный момент нашу страницу.
Для этого мы проверим строку с именем браузера, посылаемую нам в
HTTP-запросе. Эта информация хранится в переменной. Переменные в PHP всегда
предваряются знаком доллара. Интересующая нас в данный момент переменная
называется $_SERVER["HTTP_USER_AGENT"].
Пару слов об автоматической глобализации переменных в PHP:
$_SERVER - специальная
зарезервированная переменная PHP, которая содержит всю информацию,
полученную от Web-сервера. Она является автоглобализованной (или
суперглобальной). Для более подробной информации смотрите раздел
"Суперглобальные
переменные". Эти специальные переменные появились в PHP, начиная
с версии 4.1.0. До этого
использовались массивы $HTTP_*_VARS, такие, как
$HTTP_SERVER_VARS. Эти массивы, несмотря на то,
что они уже устарели, до сих пор существуют (см. замечания по
старым программам).
Для вывода данной переменной мы сделаем так:
Пример 2-2. Вывод значения переменной (элемента массива) |
<?php echo $_SERVER["HTTP_USER_AGENT"]; ?>
|
Пример вывода данной программы:
Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0) |
|
В PHP есть огромное количество типов
переменных. В предыдущем примере мы печатали элемент
массива. Массивы
в PHP являются очень мощным средством.
$_SERVER - просто переменная, которая предоставлена
вам языком PHP. Список таких переменных можно посмотреть в разделе
"Зарезервированные переменные".
А можно получить их полный список с помощью такой программы:
Пример 2-3. Показываем все стандартные переменные с помощью
функции phpinfo() |
Если открыть данный файл в браузере, вы увидите страничку с
информацией о PHP, а также список всех доступных вам переменных.
Внутрь тегов PHP можно помещать множество команд и создавать
кусочки кода, делающие гораздо большее, чем просто вывод на экран.
К примеру, если мы хотим сделать проверку на Internet Explorer, мы
можем поступить так:
Пример 2-4. Пример использования управляющих
структур и функций |
<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
echo "Вы используете Internet Explorer<br />";
}
?>
|
Пример вывода данной программы:
You are using Internet Explorer<br /> |
|
Здесь мы показали несколько новых элементов. Во-первых, здесь есть
команда if.
Если вам знаком основной синтаксис языка C, то вы уже заметили что-то
схожее. Если же вы не знаете C или подобного по синтаксису языка, то
лучший вариант - взять какую-либо книжку по PHP и прочитать ее. Другой
вариант - почитать раздел "Описание языка"
данного руководства. Список книг по PHP можно найти здесь:
/books.php.
Во-вторых, здесь есть вызов функции strstr().
strstr() - встроенная в PHP функция, которая ищет
одну строку в другой. В данном случае мы ищем строку
"MSIE" в $_SERVER["HTTP_USER_AGENT"].
Если строка не найдена, эта функция возвращает FALSE, если найдена -
TRUE. Если она вернет TRUE, то условие в
if окажется истинным, и
код в командных скобках ({ }) выполнится. В противном случае данный код
не выполняется. Попробуйте создать аналогичные примеры с использованием
команд if,
else, и других функций,
таких, как strtoupper() и strlen().
Также примеры содержатся во многих описаниях функций в данном руководстве.
Продемонстрируем, как можно входить в режим кода PHP и выходить из
него прямо внутри кода:
Пример 2-5. Смешение режимов HTML и PHP |
<?php
if (strstr($_SERVER["HTTP_USER_AGENT"], "MSIE")) {
?>
<h3>strstr вернул true</h3>
<center><b>Вы используете Internet Explorer</b></center>
<?php
} else {
?>
<h3>strstr вернул false</h3>
<center><b>Вы не используете Internet Explorer</b></center>
<?php
}
?>
|
Пример вывода данной программы:
<h3>strstr вернул true</h3>
<center><b>Вы используете Internet Explorer</b></center> |
|
Вместо использования команды PHP echo для вывода, мы вышли из режима
кода и послали содержимое HTML. Важный момент здесь - то, что логическая
структура кода PHP при этом не теряется. Только одна HTML-часть будет
послана клиенту в зависимости от результата функции
strstr() (другими словами, в зависимости от того,
найдена строка "MSIE" или нет).
add a note
User Contributed Notes
Делаем что-нибудь полезное
john dot t dot gold at gmail dot com
30-Aug-2007 03:55
<html>
<head>
<title>A List of All Those Vaiables Variables you get</title>
</head>
<body>
<table border=1>
<tr><td align=center>Array Name</td><td align=center>Array Contents</td></tr>
<?php
foreach ($GLOBALS as $k => $v)
{
if (is_array($v))
{
echo "<tr><td>$".$k."</td><td><table>\n";
if (count($v)>0)
{
echo "<tr><td><b>Index Syntax</b></td><td> </td><td><b>Current Value</b></td></tr>";
}
foreach ($v as $key => $value)
{
echo "<tr><td>['".$key."']</td><td>=</td><td>".$value."</td></tr>\n";
}
echo "</table></td></tr>\n";
}
ELSE
{
echo "<tr><td>$".$k."</td><td>".$v."</td></tr>\n";
}
}
?>
</table>
</body>
</html>
rfantin at coralwood dot com
20-Dec-2006 10:00
While it's easy to get carried away mixing your logic and presentation together since it's so easy to do, your better off using PHP within HTML only to fill in values, or include other source files.
Keep your actual processing in separate libraries that are called before you send any headers to the page. Try to avoid calling a script that retrieves or sets information, or manipulates it in the middle of your HTML. You'll find it's much easier to maintain.
|