Тема: Знайомство з командним інтерпретатором РНР.
Мета: ознайомитися з зовнішнім виглядом додатку, основними функціями і особливостями роботи отримати практичні навички створення найпростіших РНР-скриптів.
Теоретичний розділ
Сьогодні створення сторінки Web є не занадто важким завданням. Багато стандартних програмних пакетів персональних комп'ютерів мають убудовані засоби для перетворення документів текстових процесорів, електронних таблиць, баз даних і т.д. у спеціально кодовані документи, які можуть бути доступні в Web. Спеціальні пакети для створення сторінок Web, такі, як Microsoft FrontPage й Macromedia Dreamweaver, дозволяють легко створювати сторінки Web за допомогою технології перетаскування (Drag-and-Drop). У більшості таких випадків навіть не потрібно знати про існування спеціальної мови кодування HTML (мова розмітки гіпертексту), що неявно все це забезпечує.
Але для створення повноцінного Web-орієнтованого додатко цих засобів не достатньо. Щоб створити актуальну інтернет сторінку варто використовувати більш досконалі засоби розробки. А це вимагає більш глибокого знання предмету роботи. Найперше, з чим доведеться зтикнутися – організація зберігання і використання даних.
Сучасні системи зберігання-обробки даних використовують так звану клієнт-серверну архітектуру. В цьому випадку в системі існує як мінімум два процеси – серверний, що надає певні ресурси в користування іншим, та клієнтський, що власне здійснює оговорене користування. Слід відмітити, що зазвичай ці процеси розташовані на різних компьютерах.
Термін "клієнт-сервер" застосовується до застосування мереж на основі серверів для керування загальним доступом до ресурсів і для розподілу завдань між апаратними й програмними компонентами. У клієнт-серверних мережах на основі Web розподіл завдань обробки відбувається в трьох шарах, які відповідають трьом основним компонентам устаткування або програмного забезпечення системи.

Рис. 1.1. Апаратні й програмні шари тришарової системи обробки інформації
У першому шарі (Tier 1) клієнтський настільний ПК виконує роботу інтерфейсу користувача системи; у другому шарі (Tier 2) сервер Web виконує основні функції системи по обробці; і в третьому шарі (Tier 3) сервер бази даних, і в деяких випадках медиа-сервер, здійснює необхідні системі функції зберігання і пошуку інформації.
У свою чергу, кожний із трьох апаратних компонентів містить відповідне програмне забезпечення. Клієнтським програмним забезпеченням є браузер Web. Сервер Web виконує мережну операційну систему (NOS), таку, як Windows Server, Unix Server або Linux Server, і за допомогою додаткового програмного забезпечення, наприклад, Internet Information Server або Apache Web Server, реалізує служби Інтернет, - WWW, FTP, SMTP mail й інших. Сервер бази даних виконує систему керування базою даних (DBMS), таку, як MySQL, Oracle, Access й інші популярні пакети. Таким чином, окремі компоненти виконують окремі завдання обробки, які інтегруються за допомогою Web у закінчену систему обробки інформації.

Рис. 1.2. Функції системи обробки інформації, відображені в тришарову систему клієнт/сервер
PHP – серверна мова програмування, створена спеціально для динамічних сторінок Web. Мова була спочатку розроблена в 1994 р. Расмусом Лердорфом і була з тих пор розширена, щоб стати однією з найбільш популярних мов сценаріїв WWW. Відповідно до статистики Netcraft в 2005 р. PHP використався більш ніж на 23000000 доменах. Подібно іншим типам серверних мов, таких, як ASP, ASP.NET й JSP, код PHP обробляється на сервері Web і створює код XHTML або інший варіант виводу, який можна побачити в браузері. На відміну від інших серверних мов, PHP є продуктом з відкритим вихідним кодом - це означає, що кожний має доступ до вихідного коду й може використати, змінювати й поширювати його повністю безкоштовно.
Систему PHP можна застосовувати практично з будь-яким типом операційної системи й сервера Web. Однак, щоб сценарії PHP були оброблені, повинен бути встановлений інтерпретатор PHP. Це програмне забезпечення доступно у двох формах – повний вихідний код і двійкові файли, що виконують. Більшість систем Linux поставляються з вихідним кодом PHP. Для систем, відмінних від Unix/Linux, двійкові файли можна завантажити за адресою http://www.php.net/downloads.php.
Особливості роботи
Найпершою особливістю мови можна назвати майже повну відсутність засобів безпосереднього зчитування даних. Вхідну інформацію можна отримати лише з файлу, або побудувавши HTML-форму з відповідними полями для вводу даних.
Тому для подальшої роботи нам знадобляться певні знання мови розмітки сторінки.
Наступна особливість відноситься не стільки до мови РНР, скільки до командних інтерпретаторів, що її підтримують. Велика кількість подібних інтерпретаторів відстежують синтаксичну правильність набраного коду, і за можливості видають повідомлення про помилку, що виникла, або може виникнути.
Таблиця 1. Можливі помилки та їх коди
|
Код |
Системна назва |
Опис помилки |
|
1 |
E_ERROR |
фатальні помилки на стадії виконання |
|
2 |
E_WARNING |
попередження на стадії виконання (нефатальні помилки) |
|
4 |
E_PARSE |
помилки аналіза на стадії компіляції |
|
8 |
E_NOTICE |
повідомлення на стадії компіляції (менш серйозні за попередження) |
|
16 |
E_CODE_ERROR |
фатальні помилки при запуску РНР |
|
32 |
E_CODE_WARNING |
попередження (нефатальні помилки) при запуску РНР |
|
64 |
E_COMPILE_ERROR |
фатальні помилки на стадії компіляції |
|
128 |
E_ COMPILE_ WARNING |
попередження на стадії компіляції (нефатальні помилки) |
|
256 |
E_USER_ ERROR |
повідомлення про помилку, згенероване користувачем |
|
512 |
E_USER_ WARNING |
попередження, згенероване користувачем |
|
1024 |
E_ USER_ NOTICE |
повідомлення, згенероване користувачем |
|
2047 |
E_ALL |
все, перераховане вище |
Синтаксис PHP
Синтаксис PHP багато в чому запозичений з таких мов як C, Java і Perl. Файл, що обробляється сервером як правило має розширення php.
PHP -код включаються в html -код в наступному виді:
<?PHP текст_коду ?>
чи
<?
текст_коду;
?>
Коментарі
PHP підтримує коментарі 'C ', 'C++' і оболонки Unix. Наприклад:
<?php echo "This is a test"; // Це однорядковий коментар в стилі c++
/* /* Це багаторядковий коментар
це ще один його рядок */
echo "This is yet another test"; echo "One Final Test";
# # Це коментар в shell -стиле ?>
echo
<?php echo "Ця інформація буде виведена в HTML";?>
Оператор echo ("текст")
- - вивід на web -страницу якого-небудь тексту. Щоб вивести на web -страницу значення якої-небудь змінної, досить просто написати її ім'я усередині рядка, що виводиться, : команда echo "це цифра $а" виведе в web -страницу текст "це цифра 1", якщо раніше змінної $а було присвоєно значення, рівне одиниці. У разі потреби використовувати в рядку, що виводиться, лапки або інші спеціальні символи перед цими символами слід ставити символ " .
Привласнення значень змінним
Змінні в програмах на PHP, відділяються символами $.
$city = "Sumy";
city - змінна
Sumy - значення
Деякі операції
інкремента/декремента;
++$++$a Pre - increment Збільшує $a на 1, потім повертає $a.
$$a++ Post - increment Повертає $a, потім збільшує $a на 1.
--$--$a Pre - decrement Зменшує $a на 1, потім повертає $a.
$$a-- Post - decrement Повертає $a, потім зменшує $a на 1.
арифметичні:
$$a + $b Складання Сума $a і $b.
$$a - $b Віднімання Різниця $a і $b.
$$a * $b Множення Твір $a і $b.
$$a / $b Ділення Частка від ділення $a на $b.
$$a % $b Modulus Цілочисельний залишок від ділення $a на $b.
строкові:
Є дві строкові операції. Перша - операція ('.'), яка
повертає об'єднання з правого і лівого аргументів. Друга -
операція привласнення ('.='), яка приєднує правий аргумент в
лівому аргументу.
$$a = "Hello "; $b = $a . "World"!; // тепер $b містить "Hello World"!
$$a = "Hello "; $a .= "World"!; // тепер $a містить "Hello World"!
Вирази порівняння
Вирази порівняння обчислюються в 0 або 1, означаючи FALSE або TRUE (відповідно).
PHP підтримує > (більше), >= (більше або рівно), == (рівно), != (не рівно), < (менше) і <= (менше або рівно).
Ці вирази найчастіше використовуються усередині умовних операторів, таких як if.
порівняння:
$$a == $b рівне TRUE, якщо $a рівне $b.
$$a != $b не рівне TRUE, якщо $a не рівне $b.
$$a <> $b не рівне TRUE, якщо $a не рівне $b.
$$a < $b менше TRUE, якщо $a строго менше $b.
$$a > $b більше TRUE, якщо $a строго більше $b.
$$a <= $b менше або рівне TRUE, якщо $a менше або рівне $b.
$$a >= $b більше або рівне TRUE, якщо $a більше або рівне $b.
Експериментальна частина
Приклад 1. Створення першої PHP - програми
Спершу напишемо Web_сторінку, яка відображуватиметься в будь-якому існуючому браузері. Для цього виконаєте наступні дії.
1. Відкрийте програму Блокнот або будь-який інший доступний текстовий редактор і наберіть в нім наступний HTML_код:
<html>
<head>
<title>Web -страница</title>
</head>
<body>
Цей текст з'являється у вікні браузеру
</body>
</html>
2. Збережете цей файл з ім'ям simple01.htm.
3. Відкрийте файл в браузері. Ви отримаєте сторіночку, в якій буде написано, :
4. Створіть на сервері каталог «Ваше прізвище». Завантажите файл у даний каталог сервера. (www\Ivanov)
Знову відкрийте файл в браузері, використовуючи HTTP_адреса для локального вузла (http:\\localhost\Ivanov\simple 01.htm). Результат повинен виглядати аналогічно.
5. Замініть рядок, що починається з ‗‗Цей текст ..'', наступними рядками:
Цей текст представляє дані, отримані в результаті роботи PHP 5: Сьогодні
<?php
$todaysdate = date("m", time()). "-" . date("d", time()). "-" . date("Y", time());
echo $todaysdate;
?>
6. Збережіть файл, скопіюйте його на сервер, якщо необхідно, і відновите сторінку в браузері. Можливо, нічого не змінилося, якщо розширення файлу не було змінене з .htm на .php. Очевидно, що для того, щоб Web_сервер передав цей файл PHP_процесору, по-перше, він (сервер) повинен визначити, що цей файл являється PHP_файлом, а визначити це можна по розширенню файлу. У_других (припустимо, що файл має відповідне розширення), PHP_процесор вибирає для обробки розділи PHP_коду шляхом синтаксичного аналізу цього файлу і пошуку в нім PHP_тегів (<?php і ?>), а потім виконує PHP_код. Синтаксичний аналіз означає, що PHP_процесор прочитує окремі команди і перевіряє їх на синтаксичні помилки. Під виконанням коду слід розуміти просто фактичну обробку коду PHP_процесором.
7. Зміните розширення файлу на .php і введіть адресу файлу в браузері http:\\localhost\Ivanov\simple 01.php. Цього разу код повинен працювати і в браузері повинна з'явитися поточна дата у кінці.

Приклад 2.
Обчислити значення виразу
![]()
simple02.php
<?php
echo 'Лабораторна робота №1<br>';
echo 'Варіант 2 <br>';
echo 'Обчислення значення виразу <br>';
$a=-9.86;
$x=0.56;
$y=( log( pow($x,3) )-$x*cos($x) ) /pow($a+$x,2);
echo "Отримані результати a = $a x = $x y = $y<br>";
?>

Завдання 1.
Використовуючи наявний командний інтерпретатор, створити РНР скрипт за номером по списку. Всі необхідні параметри задати явно в коді скрипта.

Завдання 2.
Використовуючи наявний командний інтерпретатор, створити РНР скрипт за номером по списку. Всі необхідні параметри задати явно в коді скрипта.
Скласти програму, що знаходить значення виразу А=7*В – 4*С*Е. В, С та Е – довільні цілі числа.
Скласти програму, що знаходить значення виразу Е=А*(4*В - К*Р) А, В, К та Р – довільні цілі числа.
Скласти програму, що знаходить значення виразу А=(2*В - *2С) / 12*В*С. В та С – довільні цілі числа.
Скласти програму, що знаходить значення виразу С=2*А+7*В*Т*2 А, В и Т – довільні цілі числа.
Скласти програму, що знаходить об’єм прямокутного паралелепіпеда. Довжину ребер задати самостійно.
Скласти програму, що обраховує суму та добуток трьох дробових значень, заданих самостійно. Результат відобразити на екрані.
Знайти плотність матеріалу, за умови, що вага та обєм відомі. Обєм та вагу задати самостійно.
Знайти переиметр прямокутного трикутника. Довжину катетів задати самостійно.
Скласти програму, що знаходить відстань між двома точками з відомими координатами. Координати точок задати самостійно.
Скласти програму, яка визначає площу кільця, утвореного двома колами відомого діаметру. Діаметри кіл задати самостійно.
Нехай відома кількість населення держави та її площа. Скласти програму, яка визначає щільність населення в даному государстві. Площу країни та кількість населення задати самостійно.
Щомісячна стипендія студента становить А рублів, а витрати на проживання перевищують її й становлять B руб. на місяць. Ріст цін щомісяця збільшує витрати на 3%. Визначити, яку потрібно мати суму грошей, щоб прожити навчальний рік (10 місяців), використовуючи тільки ці гроші й стипендію.
У студента є накопичення S руб. Щомісячна стипендія становить А рублів, а витрати на проживання перевищують її й становлять B руб. на місяць. Ріст цін щомісяця збільшує витрати на 3%. Визначити, скільки місяців зможе прожити студент, використовуючи тільки нагромадження й стипендію.
Острів Манхеттен був придбаний поселенцями за $24 в 1826 р. Яке було б у цей час стан їхнього рахунку, якби ці 24 долара були поміщені тоді в банк під 6% річного доходу?
Скласти програму, що знаходить об’єм конуса. Висоту та радіус основи задати самостійно.
Скласти програму, що знаходить площу бічної поверхні призми. Висоту та розміри основи задати самостійно.
Скласти програму, що знаходить площу бічної поверхні циліндра. Висоту та радіус основи задати самостійно.
Скласти програму, яка обраховує гіпотенузу прямокутного трикутника. Довжини катетів задати самостійно.
Звіт до роботи має містити:
Назву роботи;
Тему роботи;
Короткі теоретичні відомості / відповіді на контрольні питання;
Завдання до роботи;
Код сторінки (код сценарія);
Скрін-шоти результатів виконання сценаріїв;
Висновки до роботи – які саме дії були виконані.
Контрольні питання
Охарактеризуйте тришарову архітектуру клієнт-сервер.
Дайте характеристики серверної складової системи.
Дайте характеристики серверної складової системи.
За який аспект роботи відповідає кожна з частин системи?
Опишіть прийоми роботи, шо були використані при написанні скрипта. Які операції та оператори були застосовані?