- •1. Основні технології розробки web-додатків
- •1.1 Протокол http
- •Основні технології розробки web-додатків
- •1.3 Короткі підсумки
- •2 Структура html-документа
- •2.1. Елементи мови html
- •2.2 Структура html-документа
- •2.2.1.Початок
- •Заголовки
- •Нижче на малюнку показаний результат використання наступних заголовків:
- •Списки в html
- •2.2.2 Тіло документа
- •2.3 Використання графіки в html
- •2.4 Таблиці
- •Атрибут border. Значення цього атрибута визначає як будуть виглядати рамки таблиці. Якщо атрибут не заданий або його значення дорівнює нулю, то таблиця не матиме рамок.
- •2.5 Html-форми Форми використовуються в www для передачі інформації від клієнта до сервера.
- •3 Каскадні таблиці стилів css
- •3.1 Загальні відомості про css
- •3.2 Додавання стилю на веб-сторінку
- •3.2.1. Таблиця пов'язаних стилів
- •3.2.2 Таблиця глобальних стилів
- •3.2.3 Внутрішні стилі
- •3.3 Синтаксис css
- •3.3.1 Властивості css
- •3.3.2 Селектори тегів
- •3.3.3 Селектори класів
- •3.3.4 Селектори-ідентифікатори
- •3.3.5 Контекстні селектори
- •3.3.6 Сусідні селектори
- •3.3.7 Дочірні селектори
- •Селектор зі значенням атрибута – встановлює стиль елемента в тому випадку, якщо задано певне значення зазначеного атрибута. Синтаксис застосування наступний.
- •Наприклад:
- •3.3.9 Універсальний селектор
- •3.4 Псевдокласи
- •3.4.2 Короткі підсумки
- •4 Типи і структури даних в javascript
- •Скрипт в html документі
- •4.2 Змінні та літерали
- •4.2.1 Літерали
- •4.3 Оператори JavaSscript
- •4.3.2 Оператор обробки рядків
- •4.3.3 Оператор typeof Аргументом оператора є змінна або вираз. Оператор повертає рядок, що описує тип аргументу(див. Табл. 4.4).
- •4.3.4 Умовний оператор (Оператор If)
- •4.3.5 Оператор перемикання (switch)
- •4.3.6 Оператори циклу
- •4.4 Масиви
- •Метод reverse () – застосовується для зміни на протилежний порядок елементів масиву всередині масиву. Припустимо, масив натуральних чисел впорядкований по зростанню:
- •Впорядкуємо його по спаданню:
- •4.5.2 Інструкція return
- •4.5.3 Виклик функції
- •4.6.2 Константи
- •4.6.3 Математичні функції.
- •4.6.4 Приклад. Генератор випадкових чисел
- •4.7 Контрольні питання
- •Події та обробники подій
- •5.1.1 Спливання подій в dhtml
- •5.1.2 Стандартні події dhtml.
- •Способи зв'язування подій
- •5.2.1 Введення подій в якості атрибутів.
- •5.2.2 Обробники подій як функції.
- •5.2.3 Динамічне зв'язування подій у сценарії.
- •5.2.5 Атрибути for і event.
- •Об'єкти браузера
- •Об'єктна модель браузера
- •Об'єкт window (Операції з вікнами)
- •Об'єкт navigator (властивості браузера)
- •Об'єкт location (Інформація про документ і вікна браузера)
- •Об'єкт history (Переходи між Web-сторінками )
- •Робота з діалоговими вікнами
- •Управління документом
- •Об'єктна модель документа
- •7.1.1 Сімейства, властивості і методи
- •Дерево документа (Document Tree)
- •Переміщення по Дереву Документа.
- •Динамічний вміст
- •8.1.1 Найбільш популярні моделі даних
- •9.3.1 Поділ інструкцій.
- •9.3.2 Коментарі.
- •9.3.3 Змінні, константи й оператори
- •9.3.6 Типи даних
- •Висновок
- •Керуючі конструкції рнр
- •Умовні оператори
- •// Ця програма надрукує всі парні цифри
- •{// Друкуємо цифру, якщо вона парна
- •Оператори передачі управління
- •Оператори включення
- •10.5 Висновок
- •Функції і масиви в php
- •Функції, визначені користувачем
- •11.1.1 Повернення значень функцією.
- •Рекурсивні функції.
- •11.1.3 Функції-змінні.
- •11.1.4 Побудова бібліотек функцій.
- •11.2.1 Операції з масивами.
- •11.2.2 Сортування масивів.
- •Sort_regular – порівнювати елементи масиву звичайним чином; sort_numeric – порівнювати елементи масиву як числа; sort_string – порівнювати елементи масиву як рядки.
- •11.2.3 Сортування масиву за ключами.
- •11.2.4 Сортування за допомогою функції, заданої користувачем.
- •Ми застосували нашу власну функцію сортування до всіх елементів масиву.
- •11.2.5 Застосування функції до всіх елементів массиву.
- •11.2.6 Виділення підмасива
- •Висновок
- •12 Строкові функції php
- •12.1 Функції пошуку в тексті (substr(), strpos(), strrpos(), strstr(), strchr(), stristr(), strrchr(), substr_count(), strspn(), strcspn())
- •12.2 Функції strlen(), chr() і ord()
- •12.3 Trim-функції (функції видалення символів відступу) trim (), ltrim (), rtrim (), chop ()
- •12.4 Функції форматного виведення. Специфікатори перетворення printf (), sprintf (), sscanf ().
- •12.5 Функції перетворення кодування
- •12.6 Функції роботи з бінарними даними pack () unpack ()
- •12.7 Функції роботи з блоками тексту (wordwrap (), str_replace (), substr_replace (), strtr (), stripslashes (), stripcslashes (), addslashes (), addcslashes (), quotemeta (), strrev ())
- •12.8 Функції об'єднання / поділу рядків (str_repeat (), str_pad (), chunk_split (), strtok (), explode (), implode (), join ())
- •12.9 Функции сравнения строк (strcmp(), strncmp(), strcasecmp(), strncasecmp(), strnatcmp(), strnatcasecmp(), similar_text(), levenshtein())
- •12.10 Функції роботи з url (parse_url (), parse_str (), rawurlencode (), rawurldecode (), base64_encode (), base64_decode ())
- •12.11 Функції перетворення регістру (strtolower (), strtoupper (), ucfirst (), ucwords ())
- •12.13 Функція htmlspecialchars
- •13 Робота з файлами
- •13.1 Відкриття і закриття файлів
- •13.2 Читання з файлів і запис у файли
- •13.2.1 Читання з файлів.
- •13.2.2 Запис в файли
- •13.5 Переміщення по файлам
- •13.6 Робота з каталогами
- •13.7 Завантаження файлу на сервер
- •14.1 Авторизація доступу
- •14.2 Механізм сесій
- •14.3 Налаштування сесій
- •14.4.1 Відкриття сесії
- •14.4.2 Створення сесії
- •14.4.3 Реєстрація змінних сесії
- •14.4.4 Видалення змінних сесії
- •14.5 Безпека
- •14.6 Висновок
- •15.1 Проектування
- •15.2 Система адміністрування контенту
- •15.2.1 Вимоги до системи адміністрування контенту (cms).
- •15.2.2 Адміністрування списку користувачів.
- •15.2.3 Вхід на сторінку адміністрування
- •15.2.4 Відкриття списку користувачів.
- •15.2.5 Редагування запису користувача.
- •15.2.6 Видалення користувача
Оператори включення
Include – дозволяє включати код, що міститься в зазначеному файлі, і виконувати його стільки разів, скільки програма зустрічає цей оператор. Включення може здійснюватися будь-яким з перерахованих способів:
include 'ім'я_файлу';
include $ file_name;
include ("ім'я файлу");
Приклад. Нехай у файлі params.inc у нас зберігається набір якихось параметрів і функцій. Кожен раз, коли нам потрібно буде використовувати ці параметри (функції), ми будемо вставляти в текст нашої основної програми команду include 'params.inc'.
<? Php
# params.inc
# ------------
$ User = "Вася";
// Функція date () повертає дату і час.
// Тут - дату в форматі: день.місяць.рік
$ Today = date ( "d.m.y");
?> <? Php
# include.php
# -------------
include ( "params.inc");
// Змінні $ user і $ today
// Задані у файлі params.inc.
// Тут ми теж можемо ними користуватися
// Завдяки команді include ( "params.inc")
echo "Привіт, $ user! <br>";
// Виведе "Привіт, Вася!"
echo "Сьогодні $ today";
// Виведе, наприклад, "Сьогодні 7.07.05"
?>
Зауважимо, що використання оператора include еквівалентно простій вставці змістовної частини файлу params.inc в код програми include.php. Може бути, тоді можна було в params.inc записати простий текст без всяких тегів, що вказують на те, що це php-код? Не можна! Справа в тому, що в момент вставки файлу відбувається перемикання з режиму обробки PHP в режим HTML. Тому код всередині файлу, що включається, який потрібно обробити як PHP-скрипт, повинен бути укладений у відповідні теги.
Пошук файлу для вставки відбувається за такими правилами:
Спочатку ведеться пошук файлу в include_path щодо поточної робочої директорії.
Якщо файл не знайдений, то пошук проводиться в include_path щодо директорії поточного скрипта.
Параметр include_path, який визначається у файлі налаштувань PHP, задає імена директорій, в яких потрібно шукати файли, що включаються.
Наприклад, ваш include_path це. (Тобто поточна директорія), поточна робоча директорія це / www /. В основній файл include.php ви включаєте файл my_dir / a.php, який в свою чергу включає b.php. Тоді парсер насамперед шукає файл b.php в директорії / www /, і якщо такого немає, то в директорії / www / my_dir /.
Якщо файл включений за допомогою include, то код,що в ньому міститься успадковує область видимості змінних рядка, де з'явився include.
Будь-які змінні викликаного файлу будуть доступні в викликаючому файлі з цього рядка і далі. Відповідно, якщо include з'являється всередині функції вхідного файлу, то код, що міститься у викликаючому файлі, буде вести себе так, як ніби він був визначений всередині функції. Таким чином, він успадкує область видимості цієї функції. Хоча ми і не знайомилися ще з поняттям функції, все ж наводимо тут ці відомості в розрахунку на інтуїтивне його розуміння.
Приклад. Нехай файл для вставки params.inc залишиться таким же, а include.php буде наступним:
<? Рhp
// оголошуємо функцію з ім'ям Footer
function Footer ()
{// включаємо файл params.inc.
include ("params.inc");
// тепер його змінні можна використовувати,
// але тільки всередині функції
$ Str = "Сьогодні: $ today <br>";
$ Str. = "<a Href='mailto:help@domain.zone'>
Сторінку створив $ user </a> ";
echo "$ str";
} // викликаємо функцію Footer ()
Footer ();
// Отримаємо:
// Сьогодні: 08.07.05
// Сторінку створив Вася
echo "$ user, $ today";
// Виведе кому, тому що змінні $ user і $ today
// Видно тільки всередині функції Footer () ?>
НЕТ.Крім локальних файлів, за допомогою include можна включати і зовнішні файли, вказуючи їх url-адреси. Дана можливість контролюється директивою url_fopen_wrappers в файлі налаштувань PHP і за замовчуванням, як правило, включена. Але в версіях PHP для Windows до PHP 4.3.0 ця можливість не підтримується зовсім, незалежно від url_fopen_wrappers.
include () – це спеціальна мовна конструкція, тому при використанні всередині умовних блоків її потрібно укладати в фігурні дужки.
При використанні include можливі два види помилок - помилка вставки (наприклад, не можна знайти вказаний файл, невірно написана сама команда вставки і т.п.) або помилка виконання (якщо помилка міститься у файлі, що вставляється). У будь-якому випадку при помилці в команді include виконання скрипта не закінчується.
<? Php
// Це невірний запис. Отримаємо помилку.
// Ми ж вставляємо не одну команду,
// а кілька, вони тільки записані
// в іншому файлі
if ($ condition) include ("first.php");
else include ("second.php");
// А ось так правильно.
if ($ condition) {include ("first.php"); }
else {include ("second.php"); }
?>
Require. Цей оператор діє приблизно так само, як і #include в C ++. Все, що ми говорили про include, лише за деякими винятками, справедливо і для require. Require також дозволяє включати в програму і виконувати будь-який файл. Основна відмінність require і include полягає в тому, як вони реагують на виникнення помилки. Як вже говорилося, include видає попередження, і робота скрипта продовжується. Помилка в require викликає фатальну помилку роботи скрипта і припиняє його виконання.
Умовні оператори на require () не впливають. Хоча, якщо рядок, в якій з'являється цей оператор, не виконується, то ні один рядок коду з файлу, що вставляється теж не виконується. Цикли також не впливають на require (). Хоча код, що міститься у файлі, що вставляється, є об'єктом циклу, але вставка сама по собі відбувається тільки один раз.У реалізаціях PHP до версії 4.0.2 використання require () означало, що інтерпретатор обов'язково спробує прочитати вставлений файл.require, як і include, при використанні всередині умовних блоків потрібно укладати в фігурні дужки.
Рішення завдання. Ми хочемо створити програму, яку можна було б використовувати для відправки листів (або просто для їх генерації) із запрошеннями на різні заходи безлічі користувачів. У попередній лекції вже розглядався подібний випадок.
Зараз ми винесемо всю інформацію про людей і події в окремий файл data.php і напишемо програму, не залежну (ну, може, зовсім трохи залежить) від інформації_і_її_структури. У цьому випадку для того, щоб, наприклад, розширити список адресатів, не потрібно буде змінювати скрипт, що генерує запрошення. Крім того, можна буде використовувати інформацію про людей і події в інших скриптах. У самому скрипті, що генерує запрошення letters.php, ми використовували умовні оператори, цикли, require і інші вивчені раніше конструкції:
<?php # data.php
#---------- define("SIGN","З повагою, Вася");
// нехай наш підпис
// буде константою
// інформація про події
$events = array("f" => "день відкритих дверей",
"o" => "відкриття виставки",
"p" => "бал випускників");
// наявна інформація про людей
// (ім'я та електронна адреса)
$people = array("ivan" => array(
"name" => "Іван Іванович",
"email"=> "user_ivan@domain.zone"),
"pit" => array(
"name" => "Петро Петрович",
"email" => "user_petr@domain.zone"),
"semen" => array(
"name" => "Семен Семенович"));
// хто куди запрошується
$who_where["ivan"] = "o"; // Іван – на виставку
$who_where["pit"] = "p"; // Петро – на бал ?> <?php # letters.php
#------------- // включаємо файл з даними про події
require("data.php"); foreach($people as $key => $man_info)
{ // для кожної людини робимо наступне:
$event_key = $who_where[$key];
// отримуємо подія, на яку він запрошується
if ($event_key <> "")
{ foreach($man_info as $key1 => $info)
{
// отримуємо ім'я та email конкретної людини if ($key1 == "name") $str = "Шановний (а), $info";
if ($key1 == "email") $email = $info;
}
// складаємо запрошення
$str .= "<br>Запрошуємо Вас на ".$events[$event_key];
switch ($event_key)
{ // в залежності від події
// додаємо якусь сходинку
case "f":
$str .= "<br>Підтвердіть Вашу участь за телефоном!";
break; case "o":
$str .= "<br>Приходьте за 15 хвилин до відкриття!";
break; case "p":
$str .= "<br>Не забудьте подарунок :-)";
break;} // додаємо підпис
$str .= "<br>".SIGN."<hr>";
// виводимо запрошення
echo $str;
/** * якщо у вас налаштована відправлення пошти за допомогою
PHP, * лист можна відправити командою
mail($email,"Letter",$str); */ } } ?>
