ООП   PHP   web   4GL - визуальные среды

Практика пограммирования скриптов на PHP

Знакомство с PHP

Язык PHP был создан Расмусом Лердорфом (Rasmus Lerdorf) осенью 1994 года исключительно в личных целях – Расмус хотел вести статистику посещаемости своего сайта (аббревиатура PHP расшифровывалась как Personal Home Page). Средствами HTML это было реализовать невозможно, а другие инструменты для решения этой задачи по каким-то причинам Расмуса не удовлетворяли, поэтому он создал свое простое и удобное средство. Он и не думал о том, что его идея может оказаться интересной еще кому-либо. Но люди, которые использовали для хостинга своих сайтов тот же сервер, что и Расмус, заинтересовались этой простой и удобной оболочкой. Автор пошел им навстречу, так в 1995 году появилась первая общедоступная версия PHP.

Андрей Гончаров

На тот момент PHP обладал весьма скромными возможностями, но уже к середине 1995 года он научился принимать данные HTML-форм и работать с базами данных. С тех пор PHP все время совершенствовался, и на сегодняшний день представляет собой удобный инструмент для создания динамических HTML-страниц. Изменилось и значение аббревиатуры: теперь PHP рекурсивно расшифровывается как PHP: Hypertext Preprocessor (PHP – гипертекстовый препроцессор).

Так что же такое PHP? PHP – это скрипт-язык, интерпретируемый на стороне сервера. После выполнения скрипта серверов браузеру передаются результаты его работы в виде HTML-страницы.

Так как целью данной статьи является обучение основам написания PHP-скриптов, то сначала определимся с инструментами, которые для этого понадобятся. Для того чтобы отлаживать скрипты, необходимо установить на компьютере веб-сервер, например Apache (www.apache.org), и собственно сам PHP (www.php.net или http://ru.php.net). Также нам понадобится текстовый редактор. Конечно, сойдет и Notepad, но его возможностей может оказаться недостаточно для комфортной работы. Для дальнейшего освоения PHP я бы советовал использовать редактор с подсветкой синтаксиса, например HomeSite 4.51 (www.allaire.com), или, еще лучше, специализированный редактор со средой отладки, например PHP Coder (www.phpide.de). Процесс установки и настройки веб-сервера Apache и PHP описан во множестве статей, в частности, их можно найти на сайте http://adonis.dem.ru. Итак, начнем.

Структура скрипта.

Сам скрипт представляет собой обычный текстовый файл, в котором содержится одна либо несколько секций <?php?>. Для лучшего восприятия сказанного напишем простейший скрипт, выводящий в браузер простейшую HTML-страницу с надписью «Это первый скрипт». Для этого создадим файл first.php следующего содержания:

<!doctype html public "-//W3C//DTD HTML 4.0 //RU"> 
<html>
<head>
<meta http-equiv="Content-Type" 
content="text/html; charset=windows-1251">
<title>Первый скрипт!</title>
</head>
<body>
<?php
echo "Это первый скрипт";
?>
</body>
</html>

Теперь, если вы наберете в браузере (подразумевается, что веб-сервер и PHP уже установлены и функционируют на компьютере) адрес http://127.0.0.1/first.php, то увидите (если не допустили ошибок при наборе текста скрипта) страничку, содержащую единственную строчку «Это первый скрипт». Данный скрипт является бессмысленным, так как его функциональность можно реализовать с использованием средств HTML. Зато мы видим, каким именно образом PHP-код можно встраивать в HTML-страницу.

У вас, наверное, уже возникли вопросы: а что же мне, собственно, может дать использование PHP? Зачем он вообще нужен? Чтобы на них ответить, давайте рассмотрим такую ситуацию: вам нужно создать несколько похожих друг на друга HTML-страниц, которые содержат разные заголовки и изображения. Без использования PHP потребовалось бы создавать все эти страницы с нуля, каждый раз используя практически одинаковые фрагменты HTML-кода. А вот как можно решить эту задачу с использованием PHP: создать файлы-шаблоны повторяющихся частей страниц, а затем – несколько скриптов, содержащих несколько строк кода. Рассмотрим пример.

Создадим файл-шаблон «верхний колонтитул» страницы header.tpl следующего содержания:

<!doctype html public "-//W3C//DTD HTML 4.0 //RU"> 
<html>
<head>
<meta http-equiv="Content-Type" 
content="text/html; charset=windows-1251">
<title><?php echo $title; ?></title>
</head>
<body>

А вот содержимое файла-шаблона "нижний колонтитул":

<img src="<?php echo $image; ?>">
</body>
</html>

Возможно, встречающиеся слова echo, $title, $image покажутся вам непонятными. Так вот, echo – это функция PHP для вывода текстовых данных в браузер. С ее помощью можно выводить просто текст, как мы делали еще в первом примере, а можно и значения переменных. В нашем случае $title и $image и есть переменные. В отличие от большинства языков программирования, в PHP нет необходимости переменные и их тип объявлять заранее. О том, что это переменные, свидетельствует знак «$» в начале их имени. По аналогии с языками С и С++ имена переменных в PHP могут состоять из символов латиницы, цифр и знака подчеркивания. Кроме того, PHP чувствителен к регистру, поэтому $var1 и $Var1 будут двумя разными переменными. Так же, как и в С/С++, в PHP каждая отдельная конструкция должна завершаться точкой с запятой – «;».

Теперь, когда мы ответили на возникшие вопросы, вернемся к нашей задаче и напишем скрипты, использующие наши шаблоны. Создадим файл page1.php:

<?php
$title = "Страница 1";
include("header.tpl");
$image = "img/1.gif";
echo "Заголовок 1";
include("footer.tpl");
?>

И файл page2.php:

<?php
$title = "Страница 2";
include("header.tpl");
$image = "img/2.gif";
echo "Заголовок 2";
include("footer.tpl");
?>

Теперь, если вы наберете в браузере http://127.0.0.1/ page1.php, то увидите страницу с заголовком «Страница 1», содержащую строку «Заголовок 1» и рисунок. Аналогичным образом можно просмотреть и страницу page2.php. Как видите, для создания множества страниц сходной структуры не приходится повторять множество тегов.

В этих скриптах полезной функцией является include(). Эта функция подставляет в тело скрипта (в той позиции, где она вызывается) содержимое файла, который передается ей в качестве параметра, то есть в нашем случае header.tpl и footer.tpl. Она же может оказаться полезной для включения в текст скрипта других фрагментов программного кода. Следует также отметить, что если файл, который нужно включить в скрипт, находится в директории, отличной от той, где находится скрипт, то нужно также указать полный путь к файлу, например include("dir1/dir2/somefile.ext");.

Если возникает необходимость использовать в скрипте данные, которые не изменяются по ходу его выполнения, то их лучше всего объявить в виде константы: define("CONST","value");. Особенность объявления констант заключается в том, что это необходимо делать в начале секции:

<?php
define("CONST","3");
echo CONST;
?>

Когда ваш скрипт станет чуть более сложным, может возникнуть необходимость добавить в него комментарии, чтобы облегчить понимание логики происходящего. В PHP есть несколько возможностей добавления комментариев: можно закомментировать либо целую строку, либо несколько строк. Символы «//» или «#» свидетельствуют о том, что все стоящее после них и до конца строки является комментарием. Если необходимо закомментировать какой-то фрагмент скрипта, то лучше воспользоваться комбинацией «/*» и «*/». Пример:

<?php
$var = 1; // присваиваем переменной значение
/*
пример комментария, состоящего
из нескольких строк.
*/
?>

Теперь пришло время изучить вопросы, без которых не обойтись при написании действительно полезных скриптов.

Операции, выражения, операторы.

Выражение в программировании служит для определения действий, которые обычно описываются формулами. Выражения состоят из операций и операндов. Последовательность выполнения операций определяется следующими факторами:

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

Приоритет операций.
Приоритет Операции
Первый *, /, %
Второй +, –
Третий ==, !=, >=, <=, <, >

Рассмотрим основные операции PHP.

Арифметические операции.
Операция Действие
+ Сложение
- Вычитание
* Умножение
/ Деление
% Остаток от деления
Операции отношения.
Операция Действие
== Равно
!= Не равно
< Меньше
> Больше
<= Меньше или равно
>= Больше или равно
Арифметические операции.
Операнды Операции
A B !A (не) A &&[A1] B (и) A || B (или)
False False True False False
False True True False True
True False False False True
True True False True True

При реализации алгоритма работы скрипта действия, которые необходимо выполнить, описываются операторами. Операторы бывают простые и структурные. К простым относится, например, оператор присваивания «=». А вот для реализации «логики» скрипта используются структурные операторы, такие как if, switch, do..while, for. Вот пример их использования:

<?php
$v1=3;
$v2=4;
$v3=8;

//если $v2 не равно $v3
if($v2!=$v3)
{ //то
$v4=10;
} // иначе
else
{
$v4=20;
}

switch($v3)
{ // если $v3 равно 3
case 3:
echo "v3=3"; // то выводим на экран строку: v3=3
break; // выход из оператора
case 8: // если $v3 равно 8
echo "v3=8"; // то выводим на экран строку: v3=8
break; // выход из оператора
default: // если переменная $v3 не равна ни одному
// из предшествующих выражений
echo "v3 != 3, v3 != 8"; // то выводим
// на экран строку: v3 != 3, v3 != 8
break; // выход из оператора
}

$i = 10;
do // выполняем операторы внутри фигурных скобок
{
echo $i; // выводим значение переменной $i
i—–; // уменьшаем значение переменной на единицу
}// пока переменная $i больше нуля
while ($i>0);

// выполняем операторы внутри фигурных скобок 10 раз
for($i=0;$i<10;$i++)
{
echo "hi! –".$i; // прибавляем (символ "." объединяет
// строки) к строке "hi! –"
// значение переменной $i
// и выводим результат
}
?>

Функции, массивы, работа с файлами

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

<?php
// определяем функцию, которая возвращает минимальное 
// из двух значений
function MinVal($var1,$var2)
{
if($var1<$var2)
{ 
return $var1;
}
else
{
return $var2; }
}
echo "<br>".MinVal(3,5); // функция вернет число 3
echo "<br>".MinVal(4,8); // функция вернет число 4
?>

PHP предоставляет также возможность работать с массивами. Массив можно определить несколькими способами, в частности, так:

ООП   PHP   web   4GL - визуальные среды

Знаете ли Вы, что, как и всякая идолопоклонническая религия, релятивизм представляет собой инструмент идеологического подчинения одних людей другим с помощью абсолютно бессовестной манипуляции их психикой для достижения интересов определенных групп людей, стоящих у руля этой воровской машины? Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМАФорум Рыцари теории эфира
Рыцари теории эфира
 13.11.2019 - 11:05: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
12.11.2019 - 19:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Марины Мелиховой - Карим_Хайдаров.
12.11.2019 - 19:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Светланы Вислобоковой - Карим_Хайдаров.
12.11.2019 - 12:05: ЭКОНОМИКА И ФИНАНСЫ - Economy and Finances -> ПРОБЛЕМА КРИМИНАЛИЗАЦИИ ЭКОНОМИКИ - Карим_Хайдаров.
12.11.2019 - 11:53: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Бориса Сергеевича Миронова - Карим_Хайдаров.
12.11.2019 - 11:49: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Веры Лесиной - Карим_Хайдаров.
11.11.2019 - 00:24: СОВЕСТЬ - Conscience -> РУССКИЙ МИР - Карим_Хайдаров.
10.11.2019 - 23:14: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Кирилла Мямлина - Карим_Хайдаров.
08.11.2019 - 06:44: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
08.11.2019 - 06:42: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вячеслава Осиевского - Карим_Хайдаров.
05.11.2019 - 21:56: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Декларация Академической Свободы - Карим_Хайдаров.
04.11.2019 - 12:41: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> КОМПЬЮТЕРНО-СЕТЕВАЯ БЕЗОПАСНОСТЬ ДЛЯ ВСЕХ - Карим_Хайдаров.
Bourabai Research Institution home page

Bourabai Research - Технологии XXI века Bourabai Research Institution