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"!
Вот и закончился урок! Мы показали вам наиболее
простые составляющие РНР - переменные, их типы,
операторы. Вы прикоснулись к фундаментальным
вещам - функциям. На их примере мы попытались
продемонстрировать силу и мощь РНР!!!