<?php
// отримання інформації про налаштування веб-сервера та PHP
phpinfo();
// основи синтаксису і програмні одиниці
// змінні і вивід
$str = "Hello, world";
echo "<h1>$str</h1>"; // це правильна конструкція. PHP здатний розбирати рядки і виділяти змінні в них
// умовний оператор
$min = -100;
$max = 100;
$i = rand($min, $max);
if ($i > 0) {echo "<p> Число позитивне </p>";}
else if ($i < 0) {echo "<p> Число негативне </p>";}
else {echo "<p>Нуль</p>";}
// цикл for
echo "<h2>Таблиця множення</h2>";
echo "<table>";
for ($i=1; $i<=10; $i++) {
echo "<tr>";
for ($j=1; $j<=10; $j++) {
echo "<td style = 'background-color: silver;width:25px; height:25px; text-align:center; vertical-align: middle;'>".($i*$j)."</td>";
}
echo "</tr>";
}
echo "</table>";
// оператор вибору (скрипт повинен бути викликаний з параметром uname (e.g.: samples.php?uname=vasya))
echo "<h2> Використання оператора вибору </h2>";
$who = $_GET["uname"];
$reply = "<b>Liza say:</b> ";
switch ($who) {
case "kolya" : $reply.="fiii..."; break;
case "petya" : $reply.="khm..."; break;
case "vasya" : $reply.="ohhh..yyyyes!"; break;
default : $reply.= " Who's next?";
}
echo "<p><b>".$who." say:</b> What do U think about Me? <p>".$reply;
// масиви
$fruits = array("banana", "plum", "apple", "peach");
sort($fruits); // сортування - див. документацію PHP "Функції масивів "
$out = "";
foreach ($fruits as $f)
$out .= "<li>$f</li>"; // конкатенація рядків echo "<ul>$out</ul>";
echo "<p>В масиві fruits ".count($fruits)." елем.</p>";
$fruits[5] = "pinapple";
print_r($fruits); // зверніть увагу - елемент з індексом 4 в цьому прикладі буде не визначено
echo $fruits[4]; // помилка! цей елемент не визначено
$fruits[4] = "";
echo $fruits[4]; // елемент визначено, але містить пустий рядок
// багатомірні масиви
$vertex[1][0][0] = 1;
$vertex[0][1][0] = 1;
$vertex[0][0][1] = 1;
print_r($vertex);
// асоціативні масиви
$coords[0]["X"] = 55;
$coords[0]["Y"] = 32;
$coords[1]["X"] = 27;
$coords[1]["Y"] = 0.56;
print_r($coords);
$page["head"] = "<head><title>PHP - it's easy</title></head>";
$page["body"] = "<body><p>A simple sample using associative arrays</p></body>";
print_r($page);
$p = $page["head"].$page["body"];
// файлові операції
$f = "read.me"; // файл у поточному каталозі
if (file_exists($f)) // перевірка існування файлу
$text = file_get_contents($f); // читання з файлу
file_put_contents($f, $p); // запис у файл, директорія повинна бути доступна для запису
(access rights - 777)
// ще про файли
$fd = fopen($f, "a"); // відкриття для дозапису (тут "a" - append)
$str = "some text";
fwrite($fd, $str); // записати в кінець файла
fclose($fd);
// змінні оточення
echo "<h1> Змінні оточення </h1>";
foreach ($_SERVER as $var=>$val) {
echo "<p>$"."_SERVER['$var'] = $val</p>";
};
// Перенаправлення запиту
$url = "index.html";
header("Location:$url"); // функція header заголовки http, тому повинна викликатися раніше будь-якого виводу
// Обробка параметрів
echo "<p> Нехай на сервер переданий запит виду http://myserv.dom/test.php?id=2344&uname=vasya&nick=vasiliok&age=19 (використаний метод GET)
<p> Потрібно вивести всі змінні з рядка запиту.";
echo "<ol><li> Потрібно вывест використання функції друку масиву: <br>";
print_r($_GET);
foreach ($_GET as $key => $val){
echo "<li>parameter: <b>".$key."</b> value: <b>".$val."</b>";
}
echo "</ul>\n<li> Поелементний висновок (виводимо тільки значення)<ul>";
echo "<li>ID: <b>".$_GET["id"]."</b>";
echo "<li>Firstname: <b>".$_GET["uname"]."</b>";
echo "<li>Nickname: <b>".$_GET["nick"]."</b>";
echo "<li>Age: <b>".$_GET["age"]."</b>";
echo "</ul></ol>";
echo "<p> Перевірка, що передані потрібні параметри:";
if (isset($_GET["id"])) {
echo "<p><b>do something...</b>";
} else {
echo "<p><b>nothing to do ...</b>";
};
echo "<h2> Перевірка, що переданий потрібний параметр і необхідне значення </h2>";
if ((isset($_GET["id"]))&&($_GET["id"] == 2344)){
echo "<p><b>do something...</b>";
} else {
echo "<p><b>nothing to do ...</b>";
}
?>
В якості примітки:Як видно із прикладів, PHP дуже тісно інтегрується з гіпертекстом. Такий стиль кодування називають "спагетті", оскільки складно відокремити зміст документа від його оформлення, що нагадує злиплі макарони. Насправді ж, для професійних розробників PHP пропонує можливості розділення коду і даних як з допомогою об'єктної парадигми програмування, так і за допомогою шаблонів, але розгляд цих питань виходить за рамки лабораторного практикуму.