ресурс для начинающих веб-разработчиков
комплексные веб-услуги по созданию сайтов

Справочный материал по основным языкам программирования и верстки сайтов.

Готовая методика создания простых и сложных динамичных сайтов, с использованием PHP и MySQL.

Использование веб-редактора Adobe Dreamweaver в разработке сайтов.

Использование графических редакторов Adobe Flash, Adobe Photoshop, Adobe Fireworks в подготовке веб-графики.

Разработка веб-сайтов под "ключ".

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

Пример PHP-программы. Использование PHP в Web

Пример PHP-программы

Традиционно тестирование любой программы PHP начинается с фразы "Hello world!".

Рассмотрим пример программы PHP.


echo "Hello world!";

Запустим сценарий. Легко убедиться, что он действительно работает, да к тому же еще и безотказно.

В окне веб-браузера это будет выглядеть ТАК.

Если мы напишем


<body>
Hello world!
</body>

то получим тотже результат.

В окне веб-браузера это будет выглядеть ТАК.

Думаете, что произошла ошибка и редактор вместо примера кода на PHP случайно вставил в текст пример HTML-страницы? Тут действительно нет вообще никаких операторов PHP, и содержимое файла с "программой" состоит целиком из статического текста. Выходит, что обычный HTML-текст также правильно обрабатывается PHP.

Рассмотрим чуть более сложный пример.

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Простой сценарий на РНР</title>
</head>

<body>
<h1>Здравствуйте!</h1>
<?php
// Вычисляем текущую дату в формате "день.месяц год"
$dat=date("d.m y");
// Вычисляем текущее время
$tm=date("h:i:s");
# Выводим их
echo "Текущая дата: $dat года<br>\n";
echo "Текущее время: $tm<br>\n";
# Выводим цифры
echo "А вот квадраты и кубы первых 5 натуральных чисел:<br>\n";
for($i=1; $i<=5; $i++)
{ echo "<li>$i в квадрате = ".($i*$i);
echo ", $i в кубе = ".($i*$i*$i)."\n";
}
?>
</body>
</html>

В окне веб-браузера это будет выглядеть ТАК.

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

Приступим к разбору программы.

Начало сценария, если бы не был уже затронут второй пример, может озадачить: разве это сценарий? Откуда HTML-тэги <html> и <body>? Вот тут-то и кроется главная особенность (кстати, чрезвычайно удобная) языка PHP: PHP-скрипт может вообще не отличаться от обычного HTML-документа, как мы это уже заметили ранее.

Идем дальше. Код сценария начинается после открывающего тэга <?php и заканчивается закрывающим ?>. Итак, между этими двумя тэгами текст интерпретируется как программа, и в HTML-документ не попадает. Если же программе нужно что-то вывести, она должна воспользоваться оператором echo (это не функция, а конструкция языка: ведь, в конце концов, если это функция, то где же скобки?). Мы подробно рассмотрим ее работу в дальнейшем. Итак, PHP устроен так, что любой текст, который расположен вне программных блоков, ограниченных <?php и ?>, выводится в браузер непосредственно, т. е. воспринимается, как вызов оператора echo (последняя аналогия очень точна, и мы остановимся на ней чуть позже).

Нетрудно догадаться, что часть строки после // является комментарием и на программу никак не влияет. Однострочные комментарии также можно предварять и символом # вместо //, как мы можем это увидеть в примере. Комментарии еще бывают и такие:

/*
это комментарий
...и еще одна строка
*/

То есть, комментарии могут быть однострочными и многострочными.

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

А пока давайте лучше посмотрим, что происходит дальше. Вот строка:

$dat=date("d.m y");

Делает она следующее: переменной с именем $dat (заметьте, что абсолютно все переменные в PHP должны начинаться со знака $, потому что "так проще для интерпретации") присваивается значение, которое вернула функция date(). Итак, мы видим, что в PHP, во-первых, нет необходимости явно описывать переменные, а во-вторых, нигде не указывается их тип (про типы мы еще поговорим чуть позже). Интерпретатор сам решает, что, где и какого типа. А насчет функции date()... Можно заметить, что у нее задается один параметр, который определяет формат результата. Например, в нашем случае это будет строка вида "01.01 09".

В конце каждого оператора должна стоять точка с запятой. Иными словами, вы обязаны ставить точку с запятой перед else в конструкции if-else, но не должны после заголовка функции.

На следующей строке мы опять видим комментарии, а дальше — еще один оператор, похожий на ранее описанный. Он присваивает переменной $tm текущее время в фор мате "часы:минуты:секунды", опять же при помощи вызова date(). Все возможности этой полезной функции будут подробно описаны далее.

Далее следуют операторы echo, выводящие текстовые строки и нашу дату и время.

Рассмотрим один из них:

echo "Текущая дата: $dat года \n";

Заметьте: то, что любая переменная должна начинаться с символа $, позволяет интерпретатору вставить ее прямо в строку символов на место $dat (конечно, в любую строку, а не только в параметры echo). Разумеется, можно было бы написать и так (поскольку конструкция echo не ограничена по числу параметров):

echo "Текущая дата: ",$dat," года \n";

или даже так:

echo "Текущая дата: ".$dat." года \n";

так как для слияния строк используется операция "." (к этому придется пока привыкнуть).

Кстати говоря, на вопрос, почему для конкатенации строк применяется точка а не, скажем, плюс "+", довольно легко ответить примером:

<?php
$a="100";
$b="200";
echo "$a+$b <br>"; // выведет "100+200"
echo "$a.$b"; // выведет "100.200"
?>

В окне веб-браузера это будет выглядеть ТАК.

Итак, мы видим, что плюс используется именно как числовой оператор, а точка — как строковой. Все нюансы применения операторов мы рассмотрим далее.

Еще один пример "внедрения" переменных непосредственно в строку:

$path="c:/windows"; $name="win"; $ext="com";

FullPath="$path\$name.$ext";

Последнее выглядит явно изящнее, чем:

$path="c:/windows"; $name="win"; $ext="com";

$FullPath=$path."\".$name.".".$ext;.

Ну вот, мы почти подобрались к сердцу нашего сценария — "уникальному" алгоритму поиска квадратов и кубов первых 5 натуральных чисел. Выглядит он так:

for($i=1; $i<=5; $i++)
{ echo "<li>$i в квадрате = ".($i*$i);
echo ", $i в кубе = ".($i*$i*$i)."\n";
}

В первой строке находится определение цикла for (счетчик $i, которому присваивается начальное значение 1, инкрементируется на единицу на каждом шаге, пока не достигнет пяти). Затем следует блок, выполняющий вывод одной пары "квадрат-куб". Вывод сделан в две строки.

Несколько операторов можно сделать одним сложным оператором, заключив их в фигурные скобки, как это сделано выше.

Наконец, после всего этого расположен закрывающий тэг PHP ?>, а дальше — опять обычные HTML-тэги, завершающие нашу страничку.

Результат работы сценария.

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Изучаем РНP</title>
</head>

<body>
<h1>Здравствуйте!</h1>
Текущая дата: 01.01. 09 года<br>
Текущее время: 04:34:16<br>
А вот квадраты и кубы первых 5 натуральных чисел:<br>
<li>1 в квадрате = 1, 1 в кубе = 1
<li>2 в квадрате = 4, 2 в кубе = 8
<li>3 в квадрате = 9, 3 в кубе = 27
<li>4 в квадрате = 16, 4 в кубе = 64
<li>5 в квадрате = 25, 5 в кубе = 125
</body>
</html>

В окне веб-браузера это будет выглядеть ТАК.

Как видно, выходные данные сценария скомбинировались с текстом, расположенным вне скобок <?php и ?>. В этом-то и заключена основная сила PHP: в легком встраивании кода в тело документа.

Использование PHP в Web

Пока мы касались только теории того, как работает сценарий на PHP. Давайте же теперь наконец займемся практикой. Но сначала поговорим вот о чем.

Итак, PHP — язык, который позволяет встраивать в код программы "куски" HTML- кода. Мы можем использовать его для написания CGI-сценариев и избавиться от множества неудобных операторов вывода текста.

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

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

Давайте пока будем рассматривать все наши примеры так, как будто они подходят под второе утверждение (хотя в последнем примере больше программного кода, чем HTML-тэгов). Итак, программа, рассмотренная нами, представляет собой HTML-страницу с "вкрапленным" кодом на PHP. А названа она 4.php и расположена в корневом каталоге сайта. Теперь с точки зрения Web-пользователя она — просто страница. И расположена она по адресу http://localhost/4.php.

Обратите внимание на URL в строке браузера (http://localhost/4.php). Все выглядит так, как будто мы просто открыли обычную Web-страничку. Расширение php для этой страницы присвоено для того, чтобы сервер смог понять, что ему нужно на самом деле использовать PHP-интерпретатор для обработки документа. Далее мы рассмотрим, как можно связать PHP с любым расширением и любым документом на сервере, а пока будем давать PHP- сценариям расширение php.