- •1. Основні технології розробки web-додатків
- •1.1 Протокол http
- •Основні технології розробки web-додатків
- •1.3 Короткі підсумки
- •2 Структура html-документа
- •2.1. Елементи мови html
- •2.2 Структура html-документа
- •2.2.1.Початок
- •2.2.2 Тіло документа
- •Заголовки
- •Нижче на малюнку показаний результат використання наступних заголовків:
- •Списки в html
- •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 Видалення користувача
12.9 Функции сравнения строк (strcmp(), strncmp(), strcasecmp(), strncasecmp(), strnatcmp(), strnatcasecmp(), similar_text(), levenshtein())
12.9.1 strcmp()
Синтаксис:
int strcmp (string str1, string str2)
Ця функція порівняння рядків. Вона порівнює два рядки і повертає:
0 – якщо рядки повністю збігаються;
1 – якщо, рядок str1 лексикографічно більше str2;
-1 –якщо, навпаки, рядок str1 лексикографічно менше str2
Функція є чутливою до регістру, тобто регістр символів впливає на результати порівнянь (оскільки порівняння відбувається побайтово). Приклад:
<?
$ Str1 = "ttt";
$ Str2 = "tttttttttt";
echo ( "Result of strcmp ($ str1, $ str2) is");
echo (strcmp (str1, str2)); echo ( "<br>");
echo ( "Result of strcmp ($ str2, $ str1)> is");
echo (strcmp (str2, str1)); echo ( "<br>");
echo ( "Result of strcmp ($ str1, $ str1) is");
echo (strcmp (str1, str1));
?>
Результат:
Result of strcmp (ttt, tttttttttt) is -1
Result of strcmp (tttttttttt, ttt) is 1
Result of strcmp (ttt, ttt) is 0
12.9.2 strncmp ()
Синтаксис:
int strncmp (string str1, string str2, int len)
Ця функція відрізняється від strcmp () тим, що порівнює початок рядків, а точніше перші len байтів. Якщо len менше довжини найменшої з рядків, то рядки порівнюються повністю.
В іншому функція поводиться аналогічно strcmp (), тобто повертає:
0 – якщо рядки повністю збігаються;
1 – якщо, рядок str1 лексикографічно більше str2;
-1 – якщо, навпаки, рядок str1 лексикографічно менше str2.
Порівняння також проводиться побайтово, тому функція чутлива до регістру.
12.9.3 strcasecmp ()
Синтаксис:
int strcasecmp (string str1, string str2)
Функція працює аналогічно strcmp (), тільки при роботі не враховується регістр букв.
12.9.4 strncasecmp ()
Синтаксис:
int strncasecmp (string str1, string str2, int len)
Функція strncasecmp () порівнює початок рядків без урахування регістру.
12.9.5 strnatcmp ()
Синтаксис:
int strnatcmp (string str1, string str2)
Виконує так зване "природне" порівняння рядків. Ця функція є імітатором порівняння рядків людиною, тобто вона порівнює рядки так, як їх порівнювала би людина.
Тобто, якщо, наприклад, ми будемо порівнювати файли з назвами pict1.gif, pict20.gif, pict2.gif, pict10.gif, то звичайне порівняння призведе до наступного їх розташуванню: pict1.gif, pict10.gif, pict2 .gif, pict20.gif. Природна ж сортування дасть результат, який нам більш звичний: pict1.gif, pict2.gif, pict10.gif, pict20.gif.
У прикладі використання цієї функції ми знову вдамося до функцій роботи з массивами:
<?
$ Array1 = $ array2 = array ("pict10.gif", "pict2.gif", "pict20.gif", "pict1.gif");
echo ("звичайне сортування:"); echo ("<br>");
usort ($ array1, strcmp);
print_r ($ array1);
echo ("<br>"); echo ("природне сортування:"); echo ("<br>");
usort ($ array2, strnatcmp);
print_r ($ array2);
?>
Цей скрипт виведе наступне:
Звичайне сортування:
Array ([0] => pict1.gif [1] => pict10.gif [2] => pict2.gif [3] pict20.gif)
Природне сортування:
Array ([0] => pict1.gif [1] => pict2.gif [2] => pict10.gif [3] pict20.gif)
12.9.6 strnatcasecmp ()
Синтаксис:
int strnatcasecmp (string str1, string str2)
Виробляє "природне" порівняння рядків без урахування регістру. Функція виконує те ж саме, що і strnatcmp (), тільки без урахування регістру.
12.9.7 similar_text ()
Синтаксис:
int similar_text (string str_first, string str_second [, double percent])
Ця функція виконує визначення схожості двох рядків. Функція similar_text () визначає схожість двох рядків по алгоритму Олівера. Функція повертає число символів, що збіглися в рядках str_first і str_second. Третій необов'язковий параметр передається по посиланню і в ньому зберігається відсоток збігу рядків.
Замість стека, як в алгоритмі Олівера, ця функція використовує рекурсивні виклики. Складність алгоритму цієї функції дорівнює O ((max (n, m)) 3), що робить цю функцію повільною. (Грубо кажучи, швидкість виконання цієї функції пропорційна N3, де N - довжина найбільшого рядка.
Приклад:
<?
$ Str1 = "Hello, world!";
$ Str2 = "Hello!";
$ Var = similar_text ($ str1, $ str2);
$ Var1 = similar_text ($ str1, $ str2, & $ tmp);
// Параметр $ tmp передаємо по посиланню
echo ( "Результат виконання функції similar_text ()
для рядків $ str і $ str1 в кількості символів: ");
echo ( "<br>"); echo ( "$ var"); echo ( "<br>");
echo ( "і в процентах:"); echo ( "<br>");
echo ($ tmp); // Для виведення інформації в процентах звертаємося до $ tmp
?>
Результат виконання функції similar_text () для рядків Hello, world! і Hello! в кількості символів:
6
і у відсотках:
63.157894736842
12.9.8 levenshtein ()
Функція виконує визначення відмінності Левенштейна двох рядків.
Синтаксис:
int levenshtein (string str1, string str2)
int levenshtein (string str1, string str2, int cost_ins, int cost_rep, int cost_del)
int levenshtein (string str1, string str2, function cost)
Під поняттям "відмінність Левенштейна" розуміється мінімальне число символів, яке потрібно було б замінити, вставити або видалити для того, щоб перетворити рядок str1 в str2.
Складність алгоритму цієї функції дорівнює O (m * n), тобто пропорційна добутку довжин рядків str1 і str2, тому ця функція набагато швидша, ніж функція similar_text ().
Як бачимо, у функції три види синтаксису. У першому випадку функція повертає число необхідних операцій над символами рядків для перетворення str1 в str2:
<?
$ Str1 = "Hello, world!";
$ Str2 = "Hello!";
$ Var = levenshtein ($ str1, $ str2);
echo ($ var); // Поверне 7
?>
У другому випадку додаються три додаткові параметри: вартість операції вставки cost_ins, заміни cost_rep і видалення cost_del. Природно, функція в цьому
випадку стає менш швидкодіючої. Повертається інтегральний показник складності трансформації (ІПСТ).
<?
$ Str1 = "Hello, world!";
$ Str2 = "Hello!";
$ Var = levenshtein ($ str1, $ str2,3,3,3);
echo ($ var); // Поверне 21
?>
Число 21, між іншим, це 7 * 3 :). Тобто ІПСТ дорівнює добутку кількості символів, необхідних для заміни (а як ми порахували в попередньому прикладі їх треба 7) на вартість, в цьому випадку, однією з операцій.
У цьому прикладі, оскільки вартість однакова, не має значення, яку операцію брати. У разі, якщо вартості різні, при обчислення ІПСТ береться найбільший. Тобто, якщо ми напишемо в цьому прикладі
$ Var = levenshtein ($ str1, str2, 2,3,6);
то функція поверне нам значення 42.
Третій варіант дозволяє вказати функцію, яка використовується для розрахунку складності трансформації.
