PHP (урок 1): Шишок (не ругательное слово!)
Для справки: Шишок - домовой из детского фильма
"Деревня Утка"
Работает ли
?
Прежде чем начать изучение основ языка PHP вы должны
проверить установлены ли РНР-модули на вашем WEB сервере, сделать это
можно следующим образом:
Создайте файл с расширением .php - на пример,
"test.php"
Вставьте туда эти строки:
<?php
phpinfo();
?>
Сохраните
то, что получилось, и поместите, к примеру, в корень вашей папки на Web
сервере. Чтобы проверить, что получилось надо набрать в адресной строке
вашего броузера: http://путь к вашей папке на сервере/test.php Если
в окне появилась куча информации о настройках PHP и сервера, то считайте
что вы победили … теперь вам открыт путь для дальнейшего изучения …
вперед!
Тем, у кого все обломалось советую поменять сервис. Кстати,
многие солидные провайдеры не поддерживают PHP! Слишком накладно! Не по
деньгам (PHP распространяется бесплатно), по проблемам от него
возникающим… ;-))
А если у вас у самих стоит Web сервер, то надо всего
лишь поставить РНР.
Начнем…
Прежде всего, надо
понять, как втиснуть PHP код в нашу страницу, а очень просто! Берем и
помещаем текст программы в спецовый тег :
<?php
... PHP код
...
?>
более короткая версия
<?
... PHP код ...
?>
А вот
демонстрация того как можно совмещать PHP и HTML:
<html>
<head>
<title>Шишок</title>
</head>
<body>
Шишки
часто таскают ножи с общего стола, а ты
?
<br>
<?php
// это
РНР код
echo "<b>Шишок - друг
семьи</b>";
?>
</body>
</html>
И если вы
захотите увидеть HTML содержимое своей страницы через броузер, то вот что
увидите:
<html>
<head>
<title>Шишок</title>
</head>
<body>
Шишки
часто таскают ножи с общего стола, а
ты?
<br>
<b>Шишок - друг
семьи</b>
</body>
</html>
Не
удивляйся, что нет PHP кода! Он проработан интерпретатором! Здесь
присутствует только результат его выполнения.
В виде комментариев
РНР поддерживает текст после двойного слеша (//), а также текст,
заключенный в два слеша и две звездочки (/* */). Комментарии нужны для
внесения в любое место программы свободного текста (Например: описания
действий программы). По идее считается хорошим тоном для программиста,
если он использует комментарии по мере написания программы. Это делает ее
понятной для постороннего изучателя ;-))), да и для него самого.
;-)))
Но, признаюсь, в такой лом писать эти самые комментарии
!!!
Вот тоже самое, но наглядно:
<?php
// двойной слеш в виде комментария
/*
комментарий */
?>
Переменные и их
типы
Переменные это, можно сказать, суть любого языка
программирования... и PHP не исключение из правил. Переменные могут
составлять структуру программы и использоваться в сложных вычислениях или
содержать текст, а также обрабатывать его и много другое…
PHP
поддерживает несколько типов переменных:
- integers - целые числа,
- double - числа с дробной частью,
- floating point numbers - числа с плавающей запятой,
- strings - строки,
- arrays - массивы.
Есть еще
несколько, но они нам не нужны (они есть в мануале).
Вообще РНР не
требует от программиста определения типа переменной, это делает сам
интерпретатор во время выполнения программы. Очень приятно, что не надо
думать о том, какой тип присвоить своей переменной.
Как и в других
языках, в РНР переменной присваивается уникальное имя. Имя переменной
обязательно должно начинаться со знак доллара [$].
Ниже примеры
переменных:
$name $one $INCOME - все это
РНР переменные.
Надо заметить, что PHP очень чувствителен к
содержанию имени переменной так что переменная
$me отлична от $Me и $ME
Этот пример демонстрирует один из способов
применения переменных:
<html>
<head>
<title>Шишкование
вместе с РНР</title>
</head>
<body>
Все
ли ты знаешь о Шишках?
<br>
<?
// Присвоим значения двум переменным
$fname =
"Шишок";
$lname = "Иванович";
?>
<b> <? echo "Я
$lname...$fname $lname!"; ?> </b>
</body>
</html>
В этой
конструкции переменным $fname и $lname было присвоено строковое значение,
и была использована функция echo(). Она (эта функция) служит для вывода на
экран переменных, текста и др. … (в СИ это printf)
Есть функция
синонимичная по действию echo() это print(), служит для того же. Вот
пример ее использования:
<html>
<head>
<title>Шишкование
вместе с РНР</title>
</head>
<body>
Все
ли ты знаешь о Шишках?
<br>
<?
// Присвоим значения двум переменным
$fname =
"Шишок";
$lname = "Иванович";
?>
<?
print("<b>Я $lname...$fname $lname! </b>");
?>
</body>
</html>
Кстати,
вы можете использовать теги выделения <b></b> когда работаете cо строковой
константой в PHP. Честное пионерское… ;-)))
Я думаю, что следующий
пример использования переменных и некоторых самых распространенных
математических операций пробудит в некоторых желание экспериментировать …
посмотрим !!!
Пример: Таблица сделанных в магазине
покупок.
<?php
// Установим значения
некоторых переменных
// Игрушки
$item1 = "Шишковый
мяч";
$item2 = "Шишковатые кубики";
$item3 = "Шишканутая
скакалка";
// цена
$item1_cost = 100;
$item2_cost =
20;
$item3_cost = 48;
// количество
$item1_qty =
1;
$item2_qty = 15;
$item3_qty = 1;
// подсчет полной
стоимости каждого товара
$item1_total = $item1_cost *
$item1_qty;
$item2_total = $item2_cost * $item2_qty;
$item3_total =
$item3_cost * $item3_qty;
// подсчет общей
стоимости
$grand_total = $item1_total + $item2_total +
$item3_total;
// Спец. скидка Шишковым друзьям - 10%
$discount =
10;
// Вычисление скидки
$amount = ($grand_total *
10)/100;
// вычитание ее из общей суммы
$net_total =
$grand_total - $amount;
?>
<html>
<head>
<title>Шишковые
игрушки</title>
<style type="text/css">
td
{font-family:Verdana;}
</style>
</head>
<body>
<center>
<table
border="3" cellspacing="0" cellpadding="4">
<tr>
<td
colspan="4" align="center" valign="middle">
<b>Ваши
покупки</b>
</td>
</tr>
<tr>
<td>
<b>Описание</b>
</td>
<td>
<b>Стоимость<b>
</td>
<td>
<b>Количество</b>
</td>
<td>
<b>Общая
стоимость</b>
</td>
</tr>
<?php
echo "<tr>
<td> $item1
</td>
<td align=right> $item1_cost </td>
<td
align=right> $item1_qty </td>
<td align=right>
$item1_total </td>
</tr>";
echo
"<tr>
<td> $item2 </td>
<td align=right>
$item2_cost </td>
<td align=right> $item2_qty
</td>
<td align=right> $item2_total
</td>
</tr>";
echo "<tr>
<td> $item3
</td>
<td align=right> $item3_cost </td>
<td
align=right> $item3_qty </td>
<td align=right>
$item3_total </td>
</tr>";
echo
"<tr>
<td colspan=3 align=right>
<b>Общая
стоимость</b>
</td>
<td
align=right>
<b>$grand_total</b>
</td>
</tr>";
echo
"<tr>
<td colspan=3 align=right>
<b>Ваша скидка
[$discount%]</b>
</td>
<td
align=right>
<b>$amount</b>
</td>
</tr>";
echo
"<tr>
<td colspan=3
align=right>
<b>Итого</b>
</td>
<td
align=right>
<b>$net_total</b>
</td>
</tr>";
?>
</table>
<font size=-2 color=silver
face=Verdana>Спасибо за сделанные
покупки!</font>
</center>
</body>
</html>
Попробовали?
Не думайте, что это все ерунда! Это очень полезный пример. Многие сложные
скрипты содержат в своей основе, части этой самой
программы.
Запомните!!!! Просто не значит не важно!!! Постепенно учась
на чем-то мелком вы подходите к более сложному! Все
впереди…
Соединение…
В РНР есть такая вещь как
конкатенация - соединение строк, строковых значений переменных…и т.д. (В
BASICe это знак "+"). Она обозначается знаком [.].
Например: "Я
пошел"."гулять" = "я пошел гулять"
Более подробно на
примере:
<?php
// Установим значения
некоторых переменных
$a = "Шишок";
$b = "реальный";
$c =
"черт";
// первый вариант
$gamma = $a . " " . $b . " " .
$c;
// второй вариант
$delta = $a . " " . $c . " " .
$b;
?>
<html>
<head>
<title>Да?!…Да!!!</title>
</head>
<body>
Первый
вариант это: <? echo $gamma; ?>
<br>
Второй вариант это:
<? echo $delta; ?>
</body>
</html>
В результате вы
увидите следующее:
Первый вариант это: Шишок
реальный черт
Второй вариант это: Шишок черт
реальный
Первые функции
Если вы уже знакомы с
Си, то вы точно знаете такую директиву как "include" с которой, как раз,
начинаются все программы. В РНР есть две функции, выполняющие похожую
работу - это include() и require().
Посмотрите на их
работу:
<html>
<head>
<title>Деревня
Утка</title>
<style>
h1,h3,li { font-family:Verdana;
}
</style>
</head>
<?php
// Шишку надо
поесть…
require("eat.php");
//
попить…
include("drink.php");
// и, конечно, набить морду
лешему
require("draka.php");
?>
<body>
<h3>Отделение
милиции.</h3>
<ol type="a">
<li>Что ели:
<?php echo "$eat"; ?>
<li>а пили: <?php echo
"$drink"; ?>
<li>За что лешего
пытались в луже утопить: <?php echo "$draka";
?>
</ol>
<br>
<h3>Кстати,...дети есть?
Идите - идите…
буян!!!</h3>
</body>
</html>
Сохраните
это в файле с РНР расширением. Создайте еще три РНР файла со следующими
названиями: "eat.php", "drink.php" и "draka.php",
затем все три сохраните в одной папке с первым.
Вот текст
трех:
[eat.php]
<?php
$eat =
"Мясо";
?>
[drink.php]
<?php
$drink = "Самогон и
сок";
?>
[draka.php]
<?php
$draka = "за
правду";
?>
Теперь, если вы загрузите главную
страницу, то РНР автоматически вложит содержимое тех трех файлов в
переменные $eat, $drink, $draka и выведет на
экран. Радуйтесь, если это произошло!!! Вы программер…
;-))))))
Есть небольшое различие между функциями include() и
require(). Оно заключается в том, что функцию require() нельзя помещать в
цикл, так как она заменяется содержимым указанного ей файла независимо от
того будет оно выполнено он или нет в отличии от функции
include()
Очень используемым и практичным способом применения
функции include() является вкладывание в нее низа страницы или т.н.
копирайта:
<html>
<head>
<title></title>
</head>
<body>
...твоя
HTML страница ...
<br>
<?
include("footer.html");
?>
</body>
</html>
где
"footer.html" содержит:
<font size=-1
face=Arial>This page copyright 2001 by Archer. All rights
reserved.</font>
Теперь этот
копирайт можно использовать на любой странице! Для этого надо всего лишь
вставить include(), а если захочется поменять содержание, то вперед …
поменяйте содержимое файла "footer.html"!
Вот и закончился
урок! Мы показали вам наиболее простые составляющие РНР - переменные, их
типы, операторы. Вы прикоснулись к фундаментальным вещам - функциям. На их
примере мы попытались продемонстрировать силу и мощь
РНР!!!
Удачи вам!