вгору

оперативний блогер

28.04.10

Серверні веб-технології

Контрольні запитання з курсу «Серверні веб-технології»

1.            Яку роль відіграють  протоколи в мережі Інтернет?
2.            Яким чином організована передача даних в Інтернет?
3.            За рахунок чого в мережі Інтернет досягається надійність передачі даних?
4.            Назвіть основні організації, що займаються розвитком архітектури і протоколів Інтернет.
5.            Хто реєструє доменні імена в Інтернеті ?
6.            Які завдання вирішує консорціум W3C?
7.            Що таке IP-адреса?
8.            Що таке доменне ім'я?
9.            Опишіть структуру доменних імен.
10.        Що таке DNS? Опишіть роботу DNS-сервера.
11.        Що таке проксі-сервер?
12.        Які завдання вирішує проксі-сервер?
13.        Назвіть основні протоколи Інтернет і їх призначення.
14.        Для чого використовується   FTP?

15.    Для чого використовується програма Telnet?
Telnet — це проста програма з текстовим інтерфейсом, яка дає змогу підключитись до іншого комп'ютера через Інтернет. Якщо власник або адміністратор надав вам право підключитися до цього комп'ютера, програма Telnet дає змогу вводити команди для доступу до програм і служб на віддаленому комп'ютері, ніби ви працюєте безпосередньо за ним. Програму Telnet можна використовувати для багатьох завдань, зокрема для доступу до електронної пошти, баз даних і файлів.

16.    Які ви знаєте поштові протоколи в Інтернет?


17.    Що таке HTTP-протокол?
HTTP (Hypertext Transfer Protocol, Протокол передачi гiпертексту) являє собою протокол прикладного рiвня. HTTP забезпечує високопродуктивний механiзм тиражування iнформацiї мультимедiйних систем незалежно вiд типу представлення даних. Протокол побудований за об'єктно-орiєнтованою технологiєю i може використовуватися для вирiшення рiзних завдань, наприклад, роботи iз серверами iмен або керування розподiленими iнформацiйними системами.

18.    Яка модель взаємодії закладена в основу протоколу HTTP?


19.    Що таке товстий клієнт і тонкий клієнт?
модель тонкого клієнта, в рамках якої вся логіка застосування та управління даними зосереджена на сервері. Клієнтська програма забезпечує тільки функції рівня представлення;
модель товстого клієнта, в якій сервер тільки керує даними, а обробка інформації та інтерфейс користувача зосереджені на стороні клієнта. Тонкими клієнтами часто також називають пристрої з обмеженою потужністю: кишенькові комп’ютери, мобільні телефони та ін.

20.    Яку структуру має запит клієнта?


21.    Яку роль виконують поля заголовка запиту клієнта?


22.    Яку структуру має відповідь сервера
Після одержання і інтерпретації запиту, сервер посилає відповідь у відповідності з наступною формою:
Відповідь = Проста-Відповідь | Повна-Відповідь
Проста-Відповідь = [ Зміст-Відповіді ]
Повна-Відповідь = Строка-Статус
*( Загальний-Заголовок | Заголовок-Відповіді | Заголовок-Змісту) CRLF
[ Зміст-Відповіді ]
Проста-Відповідь повинна посилатися тільки у відповідь на HTTP/0.9 Простий-Запит, чи в тому випадку, якщо сервер підтримує тільки обмежений HTTP/0.9 протокол. Якщо клієнт посилає HTTP/1.0 Повний-Запит і одержує відповідь, що не починається з Рядок-Статуса, він повинний припускати, що відповідь сервера являє собою Просту-Відповідь, і обробляти її відповідно до цього. Варто помітити, що Проста-Відповідь складається тільки з запитуваної інформації (без заголовків) і потік даних припиняється в той момент, коли сервер закриває сеанс зв'язку.

23.    Яку роль виконують поля заголовка відповіді сервера?
Поля заголовка відповіді
Поля заголовка відповіді дозволяють серверу передати додаткову інформацію про відповідь, що не може бути внесена в Рядок-Статус. Ці поля заголовків не призначені для передачі інформації про зміст відповіді, переданої у відповідь на запит, але там може бути інформація власне про сервер.
Заголовк-Відповіді= Public | Retry-After | Server | WWW-Authenticate | extension-header
Хоча додаткові поля заголовка відповіді можуть бути реалізовані через механізм розширення додатка, що не розпізнають ці поля, повинні обробляти їх як поля Заголовок-Зміст. Повний опис цих полів можна одержати в специфікації протоколу HTTP у CERN на сервері Wide World Web Consorcium.

            24.    Яка інформація міститься в рядку стану відповіді сервера?
Сервер відповідає повідомленням, що містить рядок статусу (включаючи версію протоколу і код статусу – успіх чи помилка), за якого випливає MIME-подібне повідомлення, що включає в себе інформацію про сервер, метаінформацію про зміст відповіді, і, можливо, саме тіло відповіді.

25.    У якій частині відповіді сервера міститься MIME інформація?




26. Що таке MIME?
Ко́мплексні розши́рення для інтерне́т-по́шти (англ. Multipurpose Internet Mail Extensions (MIME)) — Інтернет-стандарт, який розширює формат електронної пошти, додаючи підтримку відмінних від ASCII кодуваннь, не текстові долучення, багаточастинні повідомлення та заголовки у не ASCII кодуванні. Фактично уся написана людиною е-пошта передається через SMTP у форматі MIME. Електронна пошта так тісно пов'язана з SMTP і стандартом MIME, що її іноді називають SMTP/MIME.
МІМЕ — це також фундаментальний компонент протоколів комунікації, наприклад HTTP, який вимагає, щоб дані передавалися в контексті подібних до електронної пошти повідомлень, хоча вони, можливо, не є електронною поштою.

27. Який формат має поле Content-Type? Приведіть приклади.


28.    Що таке URL ?
URL розшифровується як "uniform resource locator" (уніфікований покажчик ресурсу). Це стандартний спосіб посилання на об'єкти в інтернеті. URL використовуються також при використанні інших серверів інтернет: передачі файлів по протоколу FTP, відправлення електронної пошти та т.п. Розробники HTML-документів використовують URL у своїх документах для створення гіперпосилань на інші веб-сайти. Незважаючи на здавалося б заплутаний набір похилих рисок і двокрапок, синтаксис URL розроблений таким чином, щоб він був ясний і простий. Дізайнери представляють URL не тільки як засіб встановлення зв'язку між електронними документами, але і як корисну інформацію, яка може вказуватися в книгах, на візитних картках, у рекламних повідомленнях.


29.        Чим https відрізняється від http?
HTTPS — схема URI, що синтаксично ідентична http: схемі яка звичайно використовується для доступу до ресурсів Інтернет. Використання https:URL указує, що протокол HTTP має використовуватися, але з різним типовим портом (443) і додатковим шаром шифрування/автентифікації між HTTP і TCP. Ця схема була винайдена у компанії Netscape Communications Corporation для забезпечення автентифікації і шифрування комунікацій і широко використовується на Інтернет для чутливих для безпеки комунікацій як наприклад платіжні операції і корпоративні логіни.

30.        Які типи аутентифікації  підтримуються у Веб-сервері?

31.        Що таке SSL?
SSL (англ. Secure Sockets Layer) — специфікація протоколу для передачі по Інтернету зашифрованих, аутентифікованих повідомлень, розроблений компанією Netscape Communications. Широко застосовується для перевірки повноважень і шифрування даних на транспортному рівні при роботі веб-оглядача з веб-сервером. Забезпечує безпеку каналу зв'язку між веб-сервером та веб-браузером.

32.        Що таке Cookie і для чого вони призначені?
                Cookie — порція службової інформації, якою веб-сервер помічає браузер користувача при відвідуванні, або яка створюється за ініціативою скриптового сценарію на стороні веб-браузера. При наступному візиті сервер буде знати, що користувач вже тут був. За допомогою куки-технології можна вивчити вподобання відвідувача. Куки є одним із найбільш точних засобів визначення унікального користувача.
               Застосовується для збереження даних, специфічних для даного користувача, і використовуваних веб-сервером для різних цілей, серед яких:
у системах з віддаленим доступом — пароль, що породжується сервером при першому підключенні і посилається користувачеві; при подальших підключеннях користувач повинен надавати серверу цей пароль
відстежування стану сесії
33.        Де і в якому форматі передаються дані Cookie?


34.        Хто є ініціатором запису Cookie?
Ініціатором запису cookie виступає сервер. Якщо у відповіді сервера присутнє поле заголовка Set-Cookie, клієнт сприймає це як команду на запис cookie. Надалі, якщо клієнт звертається до сервера, від якого він раніше прийняв поле заголовка Set-Cookie, крім іншої інформації він передає серверу дані cookie

35.        Як  виконуються веб-додатки на клієнтському комп'ютері?
Одним з типів програм, призначених для виконання на клієнт-машині, є сценарії, наприклад, JavaScript (VBScript). Оригінальний текст сценарію представляє собою частину веб-сторінки, тому сценарій JavaScript передається клієнту разом з документом, до складу якого він входить. Обробляючи HTML-документ, браузер виявляє вихідний текст сценарію і запускає його на виконання.До всіх програм, які передаються з сервера на клієнт-машини і запускаються на виконання, пред'являється одна загальна вимога: ці програми повинні бути позбавлені можливості звертатися до ресурсів комп'ютера, на якому вони виконуються. Така вимога цілком обгрунтована. Адже передача по мережі і запуск Java-аплетів і JavaScript-сценаріїв відбувається автоматично без участі користувача, тому робота цих програм повинна бути абсолютно безпечною для комп'ютера. Іншими словами, мови, призначені для створення програм, що виконуються на клієнт-машині, повинні бути абсолютно непридатні для написання вірусів і подібних програм.

36.        Як виконуються веб-додатки на веб-сервері?
Код програми, що працює на сервері, не передається клієнтові. При отриманні від клієнта спеціального запиту, що припускає виконання такої програми, сервер запускає її та передає параметри, що входять до складу запиту. Засоби для генерації подібного запиту зазвичай входять до складу HTML-документа.
Результати своєї роботи програма оформляє у вигляді HTML-документа і передає їх веб-серверу, а останній, у свою чергу, доповнює отримані дані HTTP-заголовком і передає їх клієнту.

37.        Які обмеження і чому накладаються на клієнтські застосування?


38.        Що таке насичене інтернет-застосування?
Насичений інтернет-додаток (Rich Internet application) - ще один підхід, який полягає у використанні Adobe Flash або Java-аплетів для повної або часткової реалізації користувальницького інтерфейсу, оскільки більшість браузерів підтримує ці технології (як правило, за допомогою плагінів).
Виникнення даного підходу обумовлена тим, що в рамках веб-додатків з "тонким" клієнтом взаємодія користувача з додатком реалізується в істотному ступені через сервер, що вимагає відправки даних на сервер, отримання відповіді від сервера і перезавантаження сторінки на стороні клієнта.
При використанні Java-аплетів до складу HTML-документа включається спеціальний дескриптор, що описує розташування файлу, який містить код аплету, на сервері. Після того, як клієнт отримує HTML-код документа, що включає аплет, він генерує додатковий запит серверу. Після того як сервер відсилає клієнту код аплету, сам аплет запускається на виконання.

39.        Що таке DOM?
Об'єктна модель документу
 (англ. Document Object Model, DOM) — специфікація прикладного програмного інтерфейсу для роботи зі структурованими документами (як правило, документів XML). Визначається ця специфікація консорціумом W3C.
З точки зору
об'єктно-орієнтованого програмування, DOM визначає класи, методи та атрибути цих методів для аналізу структури документів та роботи із представленям документів у вигляді дерева. Все це призначено для того, аби надати можливість комп'ютерній програмі доступу та динамічної модифікації структури, змісту та оформлення документу.
Через те, що структура документа представляється у вигляді дерева, повний зміст документа аналізується та зберігається в пам'яті комп'ютера. Тому, DOM підходить для застосувань в програмах, які вимагають багаторазовий доступ до елементів документа в довільному порядку. В разі, якщо треба лише послідовний або одноразовий доступ до елементів документа, рекомендується, для пришвидшення переробки та зменшення об'ємів необхідної пам'яті комп'ютера, використовувати
послідовну модель роботи зі структурованими документами (SAX).


40.        Що таке DHTML? Чим DHTML відрізняється від динамічно створюваних сторінок?
DHTML, Dynamic HTML — стандарт, що дозволяє працювати з HTML-документом як з об'єктною структурою, використовуючи поєднання статичної мови розмітки HTML, вбудованої скриптової мови JavaScript (сценарії виконуються на стороні клієнта), CSS (каскадних таблиць стилів) і DOM (об'єктній моделі документа). Він може бути використаний для створення додатку в Web-оглядачі: наприклад для простішої навігації або для додання інтерактивності форм. Також DHTML може бути використаний для динамічного перетягування елементів по екрану і може служити як інструмент для створення заснованих на оглядачі відео-ігор.

41.        Що таке регулярні вирази?
Регулярний вислів (в програмуванні) — це рядок що описує або збігається з множиною рядків, відповідно до набору спеціальних синтаксичних правил. Регулярні вислови використовуються в багатьох текстових редакторах та допоміжних інструментах для пошуку та зміни тексту на основі заданих шаблонів.

42.        Для чого використовуються регулярні вирази?
За допомогою регулярних виразів можна задавати структуру шуканого шаблону і його позицію всередині рядка
(наприклад, на початку або в кінці рядка, на кордоні чи не на кордоні слова).

43.        Яким чином можна розширити можливості можливостей клієнт-серверної взаємодії в рамках протоколу HTTP?
44.        Що таке plug-in ?
Flash - це розроблений Macromedia формат для мультимедийных об’єктів - анімаційних роликів, звукового супроводу й т.п. Поширюється, модуль, що підключає як до браузера, (plug-in). Одержав широке поширення в цей час, оскільки дозволяє в компактному обсязі даних описувати складні анімації й оперувати векторними об’єктами.
45.        Що таке сценарій?
Одним з типів програм, призначених для виконання на клієнт-машині, є сценарії, наприклад, JavaScript (VBScript). Оригінальний текст сценарію представляє собою частину веб-сторінки, тому сценарій JavaScript передається клієнту разом з документом, до складу якого він входить. Обробляючи HTML-документ, браузер виявляє вихідний текст сценарію і запускає його на виконання.
46.        Що таке CGI?
Common Gateway Interface - стандартний шлюзовий інтерфейс. Протокол CGI визначає специфікації, по яких здійснюється взаємодія сценаріїв і серверів. Браузери безпосередньо не взаємодіють із CGI.
47/\.
Головне призначення CGI  забезпечення однакового потоку даних між сервером і працюють на ньому додатком. CGI визначає:  порядок взаємодії сервера з прикладною програмою, у якому  сервер виступає ініціації стороною;  механізм реального обміну даними і керуючими командами в цій   взаємодії, що не визначено в протоколі HTTP. Такі поняття, як    метод доступу, змінні заголовка, MIME, типи даних, запозичені з   HTTP і роблять специфікацію прозорою для тих, хто знайомий з самим протоколом.


48.        Які етапи включає виконання CGI-сценарію?
. Виконання будь-якої програми (у тому числі CGI-сценарію) можна умовно розділити на п'ять етапів:
1. Запуск програми.
2. Ініціалізація і читання вихідних даних.
3. Обробка даних.
4. Висновок результатів виконання.
5. Завершення програми.
Відмінності між CGI-сценарієм і консольним додатком стосуються першого, другого і четвертого етапів виконання.

49.        Яким чином веб-сервер  визначає, що потрібно саме виконати програму, а не повернути клієнтові файл з кодом?
50.        Чим відрізняється обробка запиту клієнта сценарієм залежно від методи запиту?
51.        Що таке змінні оточення?
52.        Які змінні оточення використовуються сценаріями для отримання даних від клієнта?
53.        Перерахуйте мови розробки веб-сценаріїв і стисло охарактеризуйте їх.
54.        До якого класу мов відноситься Perl?
55.        Які ви знає сильні сторони мови Perl?
56.        Які типи масивів використовуються в Perl?


57.        Чим відрізняються скалярні масиви від асоціативних?
58.        Які визначені зарезервовані  змінні використовуються  в Perl?
59.        Що таке дескрипор потоку?
60.        Які оператори пошуку і заміни використовуються у   Perl?
61.        Яку функцію виконують модулі DBI/DBD у   Perl?
62.        До якого класу мов відноситься PHP?
63.        Які ви знає сильні сторони  PHP?
64.        Як відбувається вбудовування PHP коду в HTML документ ?
65.        Які типи даних використовуються в PHP?
66.        Які об'єктно-орієнтовані можливості реалізовані в PHP?


67.        Що таке HTML?

HTML (англ. HyperText Markup Language — мова розмітки гіпертексту) — стандартна мова розмітки документів у Всесвітній павутині.
Мова HTML була розроблена Тімом Бернерс-Лі у 1980-90 роках.
у 2000 році HTML стала міжнародним стандартом (ISO/IEC 15445:2000).
Остання специфікація: HTML 5, чернетка якої опублікована W3C (Консорціумом Всесвітньої павутини) 22 січня 2008.

Мова HTML розроблялася з метою уможливити використання інформації у Web для усіх типів пристроїв з різним розширенням, - адже досягнення сумісності знижує витрати, оскільки достатньо розробити лише одну версію документу.
HTML впроваджує засоби для: створення структурованого документу шляхом позначення структурного складу тексту: заголовки, абзаци, списки, таблиці, цитати та інше; отримання інформації із Всесвітньої мережі через гіперпосилання; створення інтерактивних форм; включення зображень, звуку, відео, та інших об'єктів до тексту.
Для перегляду HTML-розмітки документа можна використовувати будь-який текстовий редактор.
Для перегляду документу, відтвореного за правилами HTML-розмітки, використовується браузер.

Якщо специфікації HTML жорстко прописані, то стандарт XML (Extensible Markup Language, розширювана мова розмітки) передбачає можливість створення власних тегів і формування їх структури. XHTML (eXtinsible HyperText Markup Language, розширювана мова розмітки гіпертексту) — це мова розмітки, що має таку саму виразну силу як і HTML, але задовільняє синтаксичним правилам XML.
Більшість веб-сторінок створюються за допомогою мови HTML (або XHTML).

68.        Які недоліки мови HTML ви знаєте?

 Головна проблема з HTML у тому, що це «плоска» мова, тобто автори не можуть використовувати її для надання інформації про ієрархію даних. Далі, вона непослідовна і тому утрудняє розбір тексту програмним забезпеченням. Наприклад, хоча більшість відкриваючих тегів, (такі, як <B> або <H1>) має відповідні закриваючі теги, деякі (наприклад, <P>) їх не мають.

Істотним недоліком HTML можна назвати обмеженість набору його тегов. DTD-правила для HTML визначають фіксований набір дескрипторів і тому в розробника немає можливості вводити власні, спеціальні теги.

69.        Які переваги мови XML в порівнянні з HTML?

Потрібно сказати, що XML корисний для автоматизованих програмних засобів, що шукають у Web. Недосконалість HTML призвела до того, що мережа перетворилася в мішанину тексту, повну різноманітних елементів і тегів, часто використовуваних, що називається Pro Forma і нічого не значущих.

XML має величезний потенціал для удосконалення гіпертекста. Наприклад у HTML для створення зв'язку використовується елемент A, XML же дозволяє створити не просто посилання, а наприклад, двонаправлений зв'язок.

Перспектива XML полягає в тому, що він буде використовуватися для опису інших мов розмітки, наприклад, JavaScript, що використовується в HTML-документах.

XML розроблений для того, щоб спростити і полегшити використання SGML, при цьому зберігши його великі можливості по створенню, поширенню і публікації Web-документів мережі.

70.        Які недоліки мови XML ви знаєте?

Моє перше враження від XML - недовіра до незрозумілої технології. Сам формат XML чимось нагадує своєрідний файл бази даних описаний мовою гіпертексту. Хоча я і хотів дізнатися більше про застосування XML на практиці, всі мої "відкриття" закінчувалися можливістю читати дані з XML за допомогою ралічних мов програмування. Ще до XML так чинили з файлами баз даних SQL і Clipper. Як мені тоді здавалося всі переваги з лишком перекриваються недоліками. Коли я нарешті навчився підключати до XML знайомі мені стилі CSS - у мене склалася думка що самостійно XML гіпертекстом бути не вміє, та й PHP з XML не працює. Нарешті не всі браузери з ним працюють (тільки Internet Explorer і Gecko останніх версій).

Тут все-таки з'ясовується що є у XML якийсь свій мова стилів, але якийсь не такий, а точніше зовсім не такий як CSS. Він був набагато складніше. XSLT не відповідає за забарвлення і форму шрифтів, таблиць та іншого барахла, він виконує ті функції, які раніше виконувалися на PHP або іншому скриптовій мовою при шаблонізаціі сайту.

Взагалі зручно, але навіть на тих браузерах що здатні працювати з XML і XSLT, інтерпретується XSLT неоднозначно. Для того, щоб пережити важкі часи я використовую PHP. Але оскільки в PHP підтримка XML і XSLT здійснюється лише на рівні експериментів, довелося активізувати модулі розширення PHP.

71.        Яку роль відіграє XML як метамова?
72.        Які підходи до веб-інтеграції вам відомі?
73.        Для чого необхідна веб-сервер-інтеграція?
74.        Яку роль відіграє XML у веб-інтеграції і чому?
75.        Які протоколи використовуються для веб-інтеграції?
76.        Що таке веб-сервіс?
77.        У чому суть сервис-орієнтованої архітектури?
78.        Опишіть яку роль виконують специфікації WSDL, SOAP, DISCO і UDDI.
79.        Що таке CMS?
80.        Для чого призначена CMS?
81.        Що таке WCMS?
82.        Для чого призначена WCMS?
83.        Які типи WCMS ви знаєте?
84.        Що таке CMF?


85.        Для чого використовується CMF?
           Каркасна система керування вмістом (Content Management Framework, CMF) - це                  
інструментарій для створення систем керування вмістом, а також окремих веб-додатків.
86.        Що таке веб-синдикація?
                        Веб-синдикація - форма синдикації при якій вміст веб-сайту надається іншим численним веб - сайтам. Інакше кажучи, веб-синдикація означає створення доступних з сайту веб-потоків (feed), які надають всім користувачам у формі короткої зведення інформацію про новий вмісті, що з'явилося на сайті (це можуть бути новини, повідомлення з форуму та ін.)
87.        Що таке веб-потік?
Веб-потік - формат даних, який використовується для надання користувачам часто оновлюваного контенту.
Розповсюджувачі контенту об'єднують (сіндіціруют) веб-потоки, даючи користувачам можливість підписатися на них. Інша назва для веб-потоку - синдикований потік.
88.        Що таке агрегація веб-потоків?
Створення набору веб-потоків, які доступні одночасно в одному місці називається агрегірованим. Для цього використовуються спеціальні аггрегатори.
Аггрегатор потоків (feed aggregator) - клієнтський веб-додаток, що збирає синдикований веб-контент такої як новинні заголовки, блоги, підкасти та інші в одному місці для більш зручного перегляду.
89.        Як здійснюється взаємодія RSS-потоку і агрегатора?
Провайдер контенту публікує посилання на потік зі свого сайту
Користувач може зареєструвати цю посилання з допомогою програми-аггрегатора на своєму комп'ютері
Програма-аггрегатор потім опитує всі сервери, що входять до списку зареєстрованого потоків, з метою отримання нового контенту
При наявності нового контенту програма-аггрегатор або сповіщати про наявність такого або відразу ж завантажує його.
90.        Які формати даних використовуються для опису веб-потоків?
Для представлення інформації з веб-потоку зазвичай використовуються 2 формату: RSS і Atom.
91.        Що таке RSS-канал?
Аггрегатор дозволяє об'єднати інформацію з різних потоків в одному вікні веб-браузера або веб-додатки.Такий додаток називається RSS-каналом
92.        Що таке RSS?
RSS - сімейство XML-форматів, призначених для опису стрічок новин, анонсів статей, змін в блогах і т. п.
У різних версіях абревіатура RSS мала різні розшифровки:
Rich Site Summary (RSS 0.9x);
RDF Site Summary (RSS 0.9 та 1.0);
Really Simple Syndication (RSS 2.x).
Першою відкритою офіційною версією RSS стала версія 0.90. Формат був заснований на RDF (Resource Description Framework - стандарт схеми опису потоків) і багатьом здався занадто складним, після чого з'явилася спрощена версія - 0.91.
93.        Що таке портал?
Портал надає єдину точку безпечного доступу часто у формі веб-інтерфейсу, і призначений для аггрегірованія і персоналізації інформації за допомогою відповідних притулити.
Наприклад, корпоративний портал (корпоративний інформаційний портал) - середа інтеграції інформації, людей і процесів з різних організаційних підрозділів.
Важливою ознакою корпоративних порталів є децентралізоване розподіл і управління контентом, що дозволяє інформації постійно оновлюватися.
94.        Що таке веб-портал?
Веб-портал - це веб-сайт, що надає користувачеві різні інтерактивні сервіси, що працюють в рамках одного веб-сайту (веб-сторінки).
Веб-портали часто виконують роль єдиної точки доступу до інформації в WWW. Портали представляють інформацію з різних джерел однаковим способом.
Поряд з стандартною функцією пошуку, веб-портали пропонують і інші сервіси такі як електронна пошта, новини, форуми, голосування та інші.
95.        Які типи веб-порталів ви знаєте?
Первинна класифікація порталів включає два основні класи:
Горизонтальні портали.
Вертикальні портали.
Крім того, можна розглядати наступні типи порталів:
Персональні
Академічні
Урядові
Корпоративні
Тематичні
96.        Для чого призначені копроративні портали?
Корпоративні портали призначені для співробітників, клієнтів і партнерів одного підприємства (іноді вони називаються B2E-портали - Business-to-employees).
Користувачі такого порталу отримують доступ до призначених їм сервісів і додатків залежно від їх ролі і персонального профілю, і це найбільш цікава категорія порталів в плані реалізації корпоративної інфраструктури і інтеграції додатків.
97.        Яку структуру має типовий корпоративний портал?
Шар базової інфраструктури, що відповідає за базові сервіси, такі як управління транзакціями, система безпеки, управління порталом і ін Технічно він містить, як правило, сервер додатків, сервер баз даних та веб-сервер, або кілька подібних серверів.
Шар інтеграції додатків, що відповідає за взаємодію порталу з усіма існуючими в компанії додатками, такими як СУБД, CRM-і ERP-системи, успадковані додатки і ін.
Шар інтерфейсів, що включає в себе засоби управління інформаційним наповненням (CMS - Content Management System), інтерфейси для обміну даними з інформаційними системами бізнес-партнерів, засоби для роботи з мобільними і бездротовими пристроями і ін До цього ж шару відносяться візуальні і незриме компоненти порталів , називані звичайно притулити, але іноді мають і інші назви (Pagelets, Gadgets, iViews і т.д.).
98.        Які ви знаєте засоби для створення порталів?
З числа найбільш поширених засобів створення порталів можна назвати наступні:
Microsoft SharePoint Server 2007
WebSphere Portal Server - компанії IBM
Oracle 9iAS Portal - компанії Oracle Corporation
Enterprise Portal - компанії SAP Portals
iPlanet Portal Server - компанії Sun Microsystems
Sybase Enterprise Portal - компанії Sybase
InfoExchange Portal - компанії BroadVision

99.        Що таке AJAX?
100.    У чому полягає суть   асинхронного (позасмугового)  запиту до веб-сервера?
101.    Яка компоненту використовується для виконання асинхронних  звернень до веб-сервера?
102.    Які формати даних використовуються для передачі даних при позасмугових зверненнях?
103.    Який протокол використовується для досупа до ресурсів Інтернет з мобільних пристроїв?
104.    Яка мова розмітки використовується для документів, які  завантажуються з веб-сервера мобільними пристроями?
105.    Що позначає термін Веб 2.0?
106.    Яку можливість надають користувачеві Веб 2.0 сайтів?
107.    Які технологи розглядаються як ключові для Веб 2.0 ?
108.    Назвіть відомі недоліки Веб 2.0 ?
109.    Що таке Mashup?
110.    Які типи Mashup  ви знаєте?
111.    Що означає термін "Соціальний Веб"?
112.    Які групи інструментів можна виділити усередині соціального  Вебу?


113.    Приведіть приклади програмних систем, що відносяться до соціального Вебу?
114. Що таке семантична веб-мережа ?
Семантична мережа — інформаційна модель предметної області, що має вигляд орієнтованого графа, вершини якого відповідають об'єктам предметної області, а ребра задають відносини між ними. Об'єктами можуть бути поняття, події, властивості, процеси.
Таким чином, семантична мережа є одним із способів представлення знань.

115. Що таке фолксономія, які можливості вона надає?
Фолксономія  - народна класифікація, практика спільної категоризації інформації (посилань, фото, відео кліпів і т. п.) за допомогою довільно вибраних міток, такзваних тегами .
Іншими словами, це поняття стосується до спонтанної співпраці групи людей з метою організації інформації, яка цікава тим, що воно повністю відрізняється від традиційних формальних методів фасетной класифікації . Як правило, це явище виникає тільки в неієрархічних спільнотах, таких як загальнодоступні веб-сайти, а не в багаторівневих колективах. Так як організатори інформації звичайно є її ж основними користувачами, фолксономія забезпечує результат, більш точно відображають сукупну концептуальну модель інформації всієї групи.

116. Що таке  онтологія?
Онтоло́гія — це вчення про буття, розділ філософії, у якому з'ясовуються фундаментальні проблеми існування, розвитку сутнісного, найважливішого. Поняття «онтологія» не має однозначного тлумачення у філософії. І це не випадково. Воно складне, змістовне, багатогранне.

117.    Що таке сервер?
Сервер можна позначити як програми, що працюють на комп'ютері. Програма складається з двох частин - клієнта і сервера. Сервер працює у фоновому режимі і чекає запиту від клієнта. Одержавши такий запит, сервер виконує спеціальні дії. Закінчивши обробку запиту, сервер «замовкає», поки його допомога не знадобиться знову. Можливий варіант, коли одна і та ж програма виступає і як клієнт і як сервер. Нічого страшного, тоді дві частини програми (клієнтська і серверна) - просто не винесені в окремі файли, а існують усередині одного виконуваного модуля. Ще хочу сказати, що сервер - це технічне рішення, яке надає безлічі комп'ютерів доступ до файлів, даних, ресурсів принтерів та факсів і таке інше. Сервер оптимізовано для надання послуг іншим комп'ютерам, або «клієнтам». Клієнтами можуть бути комп'ютери, а також принтери, факси та інші пристрої, підключені до сервера. Разом сервер і його клієнти утворюють клієнт-серверну мережу.

118.    Що таке сайт?
Веб-сайт, або просто сайт  - це одна або сукупність веб-сторінок, доступних в інтернеті через протоколи HTTP/HTTPS; Веб-сайт - це місце в інтернеті, яке визначається своєю адресою (URL), має свого власника і складається з веб-сторінок, які сприймаються як єдине ціле.
Сукупність всіх загальнодоступних веб-сайтів є Всесвітня павутина. Сторінки веб-сайту об'єднані загальною кореневою адресою, а також звичайно темою, логічною структурою, оформленням або авторством. Сторінки веб-сайтів - це файли з текстом, розміченим на мові HTML або XHTML. Ці файли, будучи завантаженими відвідувачем на його комп'ютер, обробляються програмою-оглядачем, званою браузером і виводяться на засіб відображення користувача.

119.    Що таке динамічна веб-сторінка?
Динамічна веб-сторінка— веб-сторінка, вміст якої може змінюватись, в залежності від вхідних параметрів.

120.    Як взаємодіють браузер і веб-сервер?
Браузери і веб-сервери взаємодіють на основі клієнт-серверної технології.

121.    Опишіть відмінності GET і POST-запитів?
У першому випадку (GET) дані приєднуються після знаку питання в кінець URL, вказаної в параметрі action, у другому випадку - передаються в тілі запиту - в секції, призначеній для даних (слідує після всіх заголовкiв і пустого рядка). У обох випадках дані кодуються однаково

122.    Що таке клієнтські скрипти?
Завдання клієнтських скриптів - забезпечити динамічність сторінки сайту.

123.    Що таке серверні скрипти?
Серверні скрипти виконуються сервером за запитом, що посилається клієнтським додатком (браузером). Без цих скриптів неможливо уявити собі гостьові книги, опитування або інші програмні компоненти, які активно взаємодіють із базами даних. Давайте докладніше розглянемо, що собою представляють серверні скрипти й навіщо вони потрібні.

124.    Наведіть приклади тегів абзацу, заголовків, посилань в HTML.
<p>текст</p> - абзац
<h1>текст</h1>, <h2>текст</h2>, <h3>текст</h3> - заголовки
<a href=”http://google.com”>текст</a> - посилання

125.    Наведіть приклад таблиці в HTML.
<table>
   <tr>
      <td> 1 <td> 2
   <tr>
      <td> 3 <td> 4
   <tr>
      <td> 5 <td> 6
</table>

126.    Наведіть приклад форми в HTML.
<form action="avto.php" method="post">
...
</form>

127.    Яке призначення каскадних стилів CSS ?
Каскадні таблиці стилів (англ. Cascading Style Sheets або скорочено CSS) — спеціальнамова, що використовується для відображення сторінок, написаних мовами розмітки даних. Найбільш часто CSS використовують для візуальної презентації сторінок, написаних HTMLта XHTML, але формат CSS може застосовуватися до інших видів XML-документів.
128.    Наведіть приклади форматування html тексту за допомогою CSS.
Теги для форматування текстів


b - тег для виділення тексту жирним (фізичне форматування)
Приклад використання: звичайний текст застосування даного тега звичайний текст

big - текст більший за розмірами за основний (фізичне форматування)
Приклад використання: звичайний текст застосування даного тега звичайний текст

em - тег виділення частини тексту, підкреслення змісту текста. Браузер частіше за все текст з таким тегом видає як курсив (логічне форматування)
Приклад використання: звичайний текст застосування даного тега звичайний текст

i - відображення тексту курсивом (фізичне форматування)
Приклад використання: звичайний текст застосування даного тега звичайний текст

small - текст що відображається меншими літерами за основний (фізичне форматування)
Приклад використання: звичайний текст застосування даного тега звичайний текст

strong - відображається браузерами зазвичай напівжирним. Використовують для виділення важливих частин документа (логічне форматування)
Приклад використання: звичайний текст застосування даного тега звичайний текст

sub - зміщує текст нижче рівня рядка і робить літери меншими за розмірами, якщо це можливо. Гарно використовувати для математичних індексів (фізичне форматування)
Приклад використання: звичайний текст застосування даного тега звичайний текст

suр - зміщує текст вище рівня рядка і робить літери меншими за розмірами, якщо це можливо. Частіше за все використовується для написання математичних ступенів, коренів, номерів для коментарів (фізичне форматування)
Приклад використання: звичайний текст застосування даного тега звичайний текст

ins - відмічає текст як додаток, вставку. Зазвичай відображається підкресленим текстом (логічне форматування)
Приклад використання: звичайний текст застосування даного тега звичайний текст

del - відмічає текст як видалений. Зазвичай відображається як закреслений (логічне форматування)
Приклад використання: звичайний текст застосування даного тега звичайний текст

129.    Опишіть етапи інсталяції пакету Denwer ?
 Отже почнемо розгляд кроків інсталяції Denver-а.

Крок 1: Завантаження пакету.

Для цього треба перейти на офіційний сайт проекту і скачати інсталятор (exe-файл орієнтовно 6 Мб).
Крок 2: Запускаємо встновлення.

Запускаємо завантажений exe-файл і перед нами з`являється командна строка із діалогом щодо встановлення. Перед початком встановлення необхіно закрити всі відкриті браузери, тому за необхідності роздрукуйте цю інструкцію перед початком.
Для продовження установки натискаємо Enter для відміни Ctrl+Break.
Крок 3: Вибір директорії установки.

На данному етапі інсталяційний діалог запропонує обрати папку, в яку буде встновлено сервер. За замовчуванням – це C:\WebServers. за необхідності можна вказати інший каталог.Залишаємо значення за замовчуванням або ж змінюємо на своє, натискаємо Enter, далі вводимо символ “y” і знову тиснемо Enter.
Крок 4: Створення віртуального диску.

Віртуальний диск дозволяє здійснювати швидкий доступ до каталогу вашого серверу. В “Мій комп`ютер” він буде відображатись як ще один логічний диск (як C або D). Для продовження тиснемо Enter.

Наступним етапом є вибір літери віртуального диску. За замовчуванням – це Z. Якщо у Вас вже є диск із такою літерою можна вказати будь-яку іншу незайняту літеру латинського алфавіту.
Крок 5: Копіювання файлів.

Далі процес проведе копіювання файлів в інсталяційну директорію. Для запуску натисніть Enter.
Крок 6: Вибір конфігурації запуску сервера.

В першому варіанті конфігурації запуск, зупинка та перезавантаження сервера здійснюється незалежно від віртуального диску. Віртуальний диск створюється підчас запуску операційної системи і видаляється при виході з неї. У другому варіанті конфгурації віртуальний диск створюється при старті сервера і видаляється при зупинці.
Крок 7: Створення ярликів на робочому столі


Для того щоб інсталятор створив ярлики запуску, перезапуску та зупинки серверу натисніть “y” і Enter. Якщо ні –  ”n” і Enter.
Встановлення Denver-а завершено. Для запуску серверу скористайтесь ярликом на робочому столі Start Denwer. Можна також запустити Denver командою C:\WebServers/denwer\Run.exe, якщо ви не створили ярлики.
Для тогощоб зайти на стартову сторінку Denver слід в адресній стрічці браузера ввестиhttp://localhost/.

130.    Як відбувається налаштування сервера Apache ?
Сервер Apache - Настройка.

Сервер Apache має три файли конфігурації, вони знаходяться в каталозі / usr / local / etc / httpd / conf. Ці файли дозволяють налаштувати всі сторони функціонування сервера. Після того як ви отредактіруете ці файли відповідно до ваших вимог, можете запускати сервер.Жоден інший налаштування не потрібно.

Перш за все потрібно перейти в каталог, що містить файли конфігурації, / usr / local / etc / httpd / conf. Тут ви знайдете три файлу конфігурації.

Оскільки ці файли повинні служити для вас прикладом, не варто відразу їх редагувати, спочатку зробіть копії, а вже потім приступайте до налаштування сервера:

$ For I in *- dist

> Do

> Mycopy = ▒ basename $ i √ dist ▓

> Cp $ i $ mycopy

> Done

Тепер у вас повинні бути три файли, що мають розширення. Conf.  Наведено імена цих файлів та пояснено призначення кожного з них. У вас також, як і раніше повинні залишатися вихідні файли ≈ dist; не видаляйте їх на той випадок, якщо ви допустите помилку в процесі настройки і вам доведеться повернутися до них за довідкою.
    Файл Призначення
1)Httpd.conf Файл конфігурації сервера, містить основне технічний опис роботи демона.
2)Srm.conf Карта ресурсів сервера, вказує демону HTTPd порядок надання файлів.
3)Access, conf Файл конфігурації доступу містить інформацію про те, хто має право здійснювати доступ до вашого сервера.
131.    Для чого використовується файл httpd.conf  ?
основна настройка сервера здійснюється за допомогою текстового файлу httpd.conf (при зборці за замовчуванням - / usr/local/apache2/conf/httpd.conf), що складається з директив.Файл можна змінити при запуску сервера ключем "-f". Директива Include дозволяє вставляти вміст додаткових файлів (можна вказувати шаблон імені або ім'я каталогу). Для вступу в дію змін налаштувань необхідно перезапустити сервер. Деякі директиви можуть посилатися на додаткові файли з іншим синтаксисом. Кожна директива розташовується на окремому рядку. Продовження на наступний рядок робиться за допомогою символу '\' в кінці рядка. Коментарі починаються з символу '#'. Пропуски на початку рядка ігноруються.

132.    Опишіть послідовність  створення  віртуального сервера з адресою subdomain.site в пакеті Denwer.


133.    Для чого призначена директива VirtualHost в конфігураційному файлі сервера Apache ?
134.    Для чого призначена директива AddDefaultCharset в конфігураційному файлі сервера Apache ?
135.    Для чого призначена директива DocumentRoot  в конфігураційному файлі сервера Apache ?
136.    Як створити віртуальні  сервери за допомогою директив конфігураційного файлу сервера Apache ?
137.    Для чого використовується файл .htaccess у директоріях веб сервера.
138.    Опишіть послідовність захисту директорії сервера за допомогою файлу .htaccess.

Файл. Htaccess дозволяє адміністратору керувати майже усіма параметрами сервера Apache, щодо всього сайту або тільки певних директорій, тому як структура папок на сервері має деревоподібну структуру і якщо помістити файл. Htaccess в одну з них, то можна одержати керування саме цієї директорією, не впливаючи на роботу інших. Якщо у директорії "DIR" розташований такий файл. Htaccess, а у вкладеному каталозі по відношенню до нього є ще один. Htaccess, то у вкладеної директорії діють налаштування останнього. Ось таким чином, новий. Htaccess скасовує попередній.
Даний фал ви не побачите через проток http, следоватьно користувачі не зможуть увідеь всіх налаштувань вашого сайту.
Сервер Apache діє таким чином: при початку обробки сторінки, він спочатку шукає саме файл. Htaccess, що знаходиться в корі директорій. Якщо він знайдений, то Apache починає обробку директорії відповідним чином, зазначених у файлі.
139.    Для чого призначений файл php.ini ?
140.    Для чого використовується змінна register_globals у файлі php.ini ?


141.    Як позначаються змінні в мові PHP ?
142.    Для чого використовуються змінні PHP $_GET, $_COOKIE, $_POST, $_FILES ?
143.    Як передаються змінні запиту веб-браузера в скрипт PHP ?
144.    Як описуються глобальні змінні у функціях PHP ?
145.    Наведіть приклад використання PHP оператора  while.
146.    Наведіть приклад простого  PHP  скрипта, який вбудований в HTML сторінку.
147.    Для яких цілей використовують PHP оператори require() та include() ?
148.    Наведіть приклад використання  PHP оператора foreach  з хеш-масивом.
149.    Наведіть приклад використання  PHP оператора if.
150.    Опишіть керуючі структури в мові PHP.
151.    Опишіть етапи обробки запитів GET,  POST  мовою PHP.
152.    Наведіть приклад  обробки запитів GET,  POST  мовою PHP.
153.    Наведіть приклад користувацької функції в мові PHP.
154.    Наведіть приклад об’єктно-орієнтованого коду в мові PHP.


155.    Наведіть приклади операцій з масивами в мові PHP.
155.Наведіть приклади операцій з масивами в мові PHP.

Операції з масивами
Масив - це тип даних, з даними цього типу мають бути визначені
операції. Які ж операції можна проводити з масивами? Масиви можна
складати й порівнювати.
Складають масиви за допомогою стандартного оператора «». Взагалі кажучи, цю
операцію по відношенню до масивів точніше назвати об'єднанням. Якщо у нас
є два масиви, $ a та $ b, то результатом їх складання (об'єднання) буде
масив $ c, що складається з елементів $ a, до яких праворуч дописані елементи
масиву $ b. Причому, якщо зустрічаються збігаються ключі, то в результуючий
масив включається елемент з першого масиву, тобто з $ a. Таким чином, якщо
складаються масиви в мові PHP, від зміни місць доданків сума
змінюється.
<?
$ A = array ("і" => "Інформатика",
"М" => "Математика");
$ B = array ("і" => "Історія", "м" => "Біологія",
"Ф" => "Фізика");
$ C = $ a $ b;
$ D = $ b $ a;
print_r ($ c);
/ * Отримаємо: Array ([і] => Інформатика
[М] => Математика [ф] => Фізика) * /
print_r ($ d);
/ * Отримаємо: Array ([і] => Історія
[М] => Біологія [ф] => Фізика) * /
?>
Приклад 7.1. Додавання масивів
Порівнювати масиви можна, перевіряючи їх рівність чи нерівність або
еквівалентність або нееквівалентність. Рівність масивів - це коли
збігаються всі пари ключ / значення елементів масивів. Еквівалентність - коли
крім рівності значень і ключів елементів потрібно ще, щоб елементи в
обох масивах були записані в одному і тому ж порядку. Рівність значень у
PHP позначається символом «==», а еквівалентність - символом «===».
<?
$ A = array ("і" => "Інформатика",
"М" => "Математика");
$ B = array ("м" => "Математика",
"І" => "Інформатика");
if ($ a == $ b) echo "Масиви рівні і";
else echo "Масиви НЕ рівні і";
if ($ a === $ b) echo "еквівалентні";
else echo "НЕ еквівалентні";
/ / Отримаємо echo "Масиви рівні і
НЕ еквівалентні "
?>
Приклад 7.2. Порівняння масивів
Далі розглянемо ще одну важливу операцію з масивом - підрахунок кількості
його елементів. Для її реалізації в PHP є спеціальна функція.
Функція count
Не раз уже ми використовували функцію count (), щоб обчислити кількість
елементів масиву. Насправді ця функція обчислює число елементів у
змінної взагалі. Якщо застосувати її до будь-якої іншої змінної, вона
поверне 1. Виняток становить мінлива типу NULL - count (NULL) є 0.
Крім того, застосовуючи цю функцію до багатомірного масиву, щоб отримати
число його елементів, потрібно використовувати додатковий параметр
COUNT_RECURSIVE.
<?
$ Del_items = array ("langs" => array (
"10" => "Python", "12" => "Lisp"),
"Other" => "Інформатика");
echo count ($ del_items). "<br>";
/ / Виведе 2
echo count ($ del_items, COUNT_RECURSIVE);
/ / Виведе 4
?>
Приклад 7.3. Застосування функції count ()
Ми не будемо повторювати все, що було сказано про масивах у попередніх лекціях.
У цій лекції ми розглянемо деякі вбудовані функції для роботи з
масивами. І почнемо ми з функцій для пошуку значень у масиві.
Функція in_array
in_array ("шукане значення", "масив",
["Обмеження на тип"]);
дозволяє встановити, чи міститься у заданому масиві шукане значення. Якщо
третій аргумент заданий як true, то в масиві потрібно знайти елемент, що співпадає з
шуканим не тільки за значенням, а й за типом. Якщо шукане значення - рядок, то
порівняння чутливе до регістру.
Наприклад, є масив не вивчених нами мов програмування. Ми
хочемо дізнатися, чи міститься у цьому масиві мова PHP. Напишемо наступну
програму:
<? Php
$ Langs = array ("Lisp", "Python", "Java",
"PHP", "Perl");
if (in_array ("PHP", $ langs, true))
echo "Треба б вивчити PHP <br>";
/ / Виведе повідомлення "Треба б вивчити PHP"
if (in_array ("php", $ langs))
echo "Треба б вивчити php <br>";
/ / Нічого не виведе, оскільки в масиві
/ / Є рядок "PHP", а не "php"
?>
В якості шуканого значення цієї функції може виступати і масив. Щоправда,
це властивість було додано тільки починаючи з PHP 4.2.0.
Наприклад:
<? Php
$ Langs = array ("Lisp", "Python", array ("PHP", "Java"), "Perl");
if (in_array (array ("PHP", "Java"), $ langs))
echo "Треба б вивчити PHP і Java <br>";
?>
Функція array_search
Це ще одна функція для пошуку значення в масиві. На відміну від in_array в
результаті роботи array_search повертає значення ключа, якщо елемент
знайдено, і брехня - в іншому випадку. А ось синтаксис у цих функцій однаковий:
array_search ("шукане значення", "масив",
["Обмеження на тип"]);
Порівняння рядків чутливе до регістру, а якщо вказаний опціональний аргумент,
то порівнюються ще й типи значень. До PHP 4.2.0, якщо шукане значення не
було знайдено, ця функція повертала помилку або пусте значення NULL.
Приклад 7.4. Тепер, навпаки, нехай у нас є масив мов програмування,
які ми знаємо. Причому ключем кожного елемента є номер,
вказує, яким за рахунком був вивчений цю мову.
<? Php
$ Langs = array ("Lisp", "Python", "Java",
"PHP", "Perl");
if (! array_search ("PHP", $ langs))
echo "Треба б вивчити PHP <br>";
else (
$ K = array_search ("PHP", $ langs);
echo "PHP я вивчила $ k - м";
)
?>
Приклад 7.4. Застосування функції array_search ()
У результаті ми отримаємо рядок:
PHP я вивчила 4 - м
Очевидно, що ця функція більш функціональна, ніж in_array, оскільки ми не
лише отримуємо інформацію про те, що шуканий елемент у масиві є, але і
дізнаємося, де саме в масиві він знаходиться. А що буде, якщо шуканих елементів
в масиві декілька? У такому випадку функція array_search () поверне ключ першого
зі знайдених елементів. Щоб отримати ключі всіх елементів, потрібно
скористатися функцією array_keys ().
Функція array_keys
Функція array_keys () вибирає всі ключі масиву. Але у неї є
додатковий аргумент, за допомогою якого можна отримати список ключів
елементів з конкретним значенням. Синтаксис цієї функції такий:
array_keys ("масив",
["Значення для пошуку"])
Функція array_keys () повертає як рядкові, так і числові ключі масиву,
організовуючи всі значення у вигляді нового масиву з числовими індексами.
Приклад 7.5. Ми записали масив мов, які вивчили. Список був довгим,
і деякі мови були записані декілька разів. У нас виникла підозра, що
один з таких мов - Lisp. Давайте це перевіримо:
<? Php
$ Langs =
array ("Lisp", "Python", "Java", "PHP",
"Perl", "Lisp");
$ Lisp_keys = array_keys ($ langs, "Lisp");
echo "Lisp входить в масив".
count ($ lisp_keys). "рази: <br>";
foreach ($ lisp_keys as $ val) (
echo "під номером $ val <br>";
)
?>
Приклад 7.5. Застосування функції array_keys ()
У результаті отримаємо:
Lisp входить в масив 2 рази:
під номером 0
під номером 5
Функція array_keys (), як і дві попередні, залежить від регістра, тобто елементів
LISP в масиві вона не виявить. array_keys () з'явилася лише в PHP4. У PHP3
для реалізації її функціональності потрібно придумувати свою функцію.
Якщо є функція для отримання всіх ключів масиву, то можна припустити,
що існує і функція для отримання всіх значень масиву. Дійсно,
вона існує. Це функція array_values (масив). Всі значення переданого їй
масиву записуються в новий масив, проіндексований цілими числами,
тобто всі ключі масиву губляться, залишаються лише значення. Але повернемося до
наш приклад.
Отже, ми з'ясували, що мова Lisp випадково згаданий в нашому масиві двічі.
Оскільки вивчити одну мову двічі не можна («навчав, але забув» не вважається), то
потрібно якось позбутися від повторюваних мов. Зробити це досить просто
за допомогою функції array_unique ().
Функція array_unique
Функція array_unique (масив) повертає новий массівв якому повторюються
елементи фігурують в одному екземплярі. Таким чином, замість декількох
однакових значень і їх ключів ми маємо одне значення. Який у нього буде
ключ? Як з декількох ключів однакових елементів вибирається той, який
буде збережено в новому масиві? Відбувається наступне. Всі елементи масиву
перетворюються в рядки і сортуються. Потім обробник запам'ятовує перший
ключ для кожного значення, а решта ключі ігнорує.
Спробуємо позбутися від повторюваних мов в списку вивчених.
<? Php
$ Langs =
array ("Lisp", "Java", "Python", "Java",
"PHP", "Perl", "Lisp");
print_r (array_unique ($ langs));
?>
Отримаємо наступне:
Array ([0] => Lisp [1] => Java [2] => Python [3]
=> PHP [4] => Perl)
Далі розглянемо задачу сортування масиву.
Сортування масивів
Необхідність сортування даних, в тому числі і даних, що зберігаються у вигляді
масивів, дуже часто виникає при вирішенні найрізноманітніших завдань. Якщо
в мові Сі для того, щоб вирішити цю задачу, потрібно написати десятки рядків коду,
то в PHP це робиться однієї простої командою.
Функція sort
Функція sort має наступний синтаксис
sort (масив [, прапори])
і сортує масив, тобто впорядковує його значення за зростанням. Ця функція
видаляє всі існуючі в масиві ключі, замінюючи їх числовими індексами,
відповідними до нового порядку елементів. У разі успішного завершення
роботи вона повертає true, інакше - false.
Приклад 7.6. Нехай у нас є два масиви: ціни товарів - їх назви і,
навпаки, назви товарів - їх ціни. Впорядкуємо ці масиви за зростанням:
<?
$ Items = array (10 => "хліб", 20 => "молоко",
30 => "бутерброд");
sort ($ items);
/ / Рядки сортуються в алфавітному
/ / Порядку, ключі губляться
print_r ($ items);
$ Rev_items = array ("хліб" => 10,
"Бутерброд" => 30, "молоко" => 20);
sort ($ rev_items);
/ / Числа сортуються за зростанням,
/ / Ключі губляться
print_r ($ rev_items);
?>
Приклад 7.6. Застосування функції sort ()
Отримаємо:
Array ([0] => бутерброд [1] =>
молоко [2] => хліб)
Array ([0] => 10 [1] => 20 [2] => 30)
Як додатковий аргумент прапори може використовуватися одна з
наступних констант:
  SORT_REGULAR - порівнювати елементи масиву звичайним чином;
  SORT_NUMERIC - порівнювати елементи масиву як числа;
  SORT_STRING - порівнювати елементи масиву як рядки.
Опції asort, rsort, arsort
Якщо потрібно зберігати індекси елементів масиву після сортування, то
потрібно використовувати функцію asort (масив [, прапори]). Якщо необхідно
відсортувати масив у зворотному порядку, тобто від найбільшого значення до
найменшому, то можна задіяти функцію rsort (масив [, прапори]). А якщо
при цьому потрібно ще й зберегти значення ключів, то слід використовувати
функцію arsort (масив [, прапори]). Як ви, напевно, помітили синтаксис у цих
функцій абсолютно такий же, як у функції sort. Відповідно і значення
прапорів можуть бути такими ж, як у sort: SORT_REGULAR, SORT_NUMERIC,
SORT_STRING. До речі кажучи, прапор SORT_NUMERIC з'явився тільки в PHP4.
<? Php
$ Books = array ("Пушкін" => "Руслан і Людмила",
"Толстой" => "Війна і мир",
"Лермонтов" => "Герой нашого часу");
asort ($ books);
/ / Сортуємо масив,
/ / Зберігаючи значення ключів
print_r ($ books);
echo "<br>";
rsort ($ books);
/ / Сортуємо масив у зворотному порядку,
/ / Ключі будуть замінені
print_r ($ books);
?>
Приклад 7.7. Застосування функцій asort, rsort, arsort
У результаті роботи цього скрипта одержимо:
Array ([Толстой] => Війна і мир
[Лермонтов] => Герой нашого часу
[Пушкін] => Руслан і Людмила)
Array ([0] => Руслан і Людмила
[1] => Герой нашого часу
[2] => Війна і мир)
Приклад 7.8. Припустимо, ми створюємо каталог описів документів. У кожного
документа є автор, назва, дата публікації і короткий зміст. Ми вже
не раз відображали опису, складені з цих характеристик. Кожен раз
порядок відображення цих елементів залежав від створеної нами програми.
Тепер же ми хочемо мати можливість змінювати порядок відображення
елементів за бажанням користувача. Складемо для цього наступну форму:
<form action=task.php>
<table border=1>
<tr> <td> Назва </ td> <td> <input type = text
name = title size = 5> </ td> </ tr>
<tr> <td> Короткий зміст </ td> <td> <input
type = text name = description size = 5>
</ Td> </ tr>
<tr> <td> Автор </ td> <td> <input type = text
name = author size = 5> </ td> </ tr>
<tr> <td> Дата публікації </ td> <td> <input
type = text name = published size = 5> </ td> </ tr>
</ Table>
<input type=submit value="Отправіть">
</ Form>
Приклад 7.8a. Форма для прикладу 7.8
Будемо упорядковувати дані, передані цією формою, за спаданням їх
значень, зберігаючи при цьому значення ключів. Для цього зручно скористатися
функцією arsort (). Оскільки нам важливий тільки новий порядок елементів,
збережемо в новому масиві ключі вихідного масиву в потрібному порядку. Ми
зберігаємо ключі вихідного масиву, оскільки вони є іменами
елементів, з яких конструюється опис документа, а пам'ятати їх важливо.
Отже, отримуємо такий скрипт:
<? Php
print_r ($ _GET); echo "<br>";
arsort ($ _GET);
/ / Сортуємо масив у зворотному порядку,
/ / Зберігаючи ключі
print_r ($ _GET); echo "<br>";
$ Ordered_names = array_keys ($ _GET);
/ / Складаємо новий масив
foreach ($ ordered_names as $ key => $ val)
echo "$ key: $ val <br>";
/ / Виводимо елементи нового масиву
?>
Приклад 7.8b. Програма обробки форми з прикладу 7.8
Сортування масиву за ключам
Очевидно, що може виникнути необхідність у сортуванні масиву за
значень ключів. Наприклад, якщо у нас є масив даних про книжки, як у
наведеному вище прикладі, то цілком імовірно, що ми захочемо відсортувати
книги по іменах авторів. Для цього в PHP також не потрібно писати багато рядків коду
- Можна просто скористатися функцією ksort () для сортування за зростанням
(Прямий порядок сортування) або krsort () - для сортування по убуванню (зворотний
порядок сортування). Синтаксис цих функцій знову ж таки аналогічний синтаксису
функції sort ().
<? Php
$ Books = array ("Пушкін" => "Руслан і Людмила",
"Толстой" => "Війна і мир",
"Лермонтов" => "Герой нашого часу");
ksort ($ books);
/ / Сортуємо масив,
/ / Зберігаючи значення ключів
print_r ($ books);
?>
Приклад 7.9. Сортування масиву за ключам
Отримаємо:
Array ([Лермонтов] => Герой нашого часу
[Пушкін] => Руслан і Людмила
[Толстой] => Війна і мир)
Сортування за допомогою функції, заданої користувачем
Окрім двох простих способів сортування значень масиву (за спаданням або за
зростанням) PHP пропонує користувачеві можливість самому задавати
критерії для сортування даних. Критерій задається за допомогою функції, ім'я
якого вказується в якості аргументу для спеціальних функцій сортування
usort () або uksort (). За назвами цих функцій можна здогадатися, що usort ()
сортує значення елементів масиву, а uksort () - значення ключів масиву з
допомогою певної користувачем функції. Обидві функції повертають true,
якщо сортування пройшла успішно, і false - в іншому випадку. Їх синтаксис
виглядає таким чином:
usort (масив, сортуються функція)
uksort (масив, сортуються функція)
Звичайно ж, не можна сортувати масив за допомогою будь-користувацької
функції. Ця функція повинна задовольняти певним критеріям,
що дозволяє порівнювати елементи масиву. Як повинна бути влаштована
сортуючої функція? По-перше, вона повинна мати два аргументи. У них
Лари буде передавати пари значень елементів для функції usort ()
або ключів масиву для функції uksort (). По-друге, сортуються функція
має повертати:
  ціле число, менше нуля, якщо перший аргумент менше другого;
  число, рівне нулю, якщо два аргументи рівні;
  число більше нуля, якщо перший аргумент більше другого.
Як і для інших функцій сортування, для функції usort () існує аналог, не
змінює значення ключів, - функція uasort ().
Приклад 7.10. Припустимо, у нас є масив, що містить такі відомості про
літературних творах, як назва, автор і рік створення. Ми хочемо
порядок книги по даті створення.
<? Php
/ / Масив виглядає таким чином:
$ Books = array ("Герой нашого часу" =>
array ("Лермонтов", 1840),
"Руслан і Людмила" => array ("Пушкін", 1820),
"Війна і мир" => array ("Толстой", 1863),
"Ідіот" => array ("Достоєвський", 1868));
/ * Можна, звичайно переписати цей масив
по-іншому, зробивши рік видання, наприклад,
індексом, але набагато зручніше написати свою
функцію для сортування * /
uasort ($ books, "cmp");
/ / Сортуємо масив за допомогою функції cmp
foreach ($ books as $ key => $ book) (
echo "$ book [0]: \" $ key \ "<br>";
)
function cmp ($ a, $ b) (
/ / Функція, яка визначає спосіб сортування
if ($ a [1] <$ b [1]) return -1;
elseif ($ a [1] == $ b [1]) return 0;
else return 1;
)
?>
Приклад 7.10. Сортування за допомогою користувальницьких функцій
У результаті отримаємо:
Пушкін: "Руслан і Людмила"
Лермонтов: "Герой нашого часу"
Толстой: "Війна і мир"
Достоєвський: "Ідіот"
Ми застосували нашу власну функцію сортування до всіх елементів
масиву. Далі розглянемо, як застосувати до елементів масиву будь-яку іншу
налаштовувану функцію.
Застосування функції до всіх елементів масиву
Функція array_walk (масив, функція [, дані]) застосовує створену
користувачем функцію функція до всіх елементів масиву масив і
повертає true у разі успішного виконання операції і false - в протилежному
випадку.
Користувацька функція, як правило, має два аргументи, в які
по черзі передаються значення і ключ кожного елемента масиву. Але якщо при
виклику функції array_walk () зазначений третій аргумент, то він буде розглянутий як
значення третього аргументу користувацької функції, зміст якого
визначає сам користувач. Якщо функція користувача вимагає більше
аргументів, ніж у неї передано, то при кожному виклику array_walk () буде
видаватися попередження.
Якщо необхідно працювати з реальними значеннями масиву, а не з їх копіями,
слід передавати аргумент у функцію по посиланню. Однак потрібно мати на увазі,
що не можна додавати або видаляти елементи масиву і проводити дії,
змінюють сам масив, оскільки в цьому випадку результат роботи array_walk ()
вважається невизначеним.
<? Php
$ Books1 = array (
"А. С. Пушкін" => "Руслан і Людмила",
"Л. Н. Толстой" => "Війна і мир",
"М. Ю. Лермонтов" => "Герой нашого часу");
/ / Створюємо функцію, яку хочемо
/ / Застосувати до елементів масиву
function try_walk ($ val, $ key, $ data) (
echo "$ data \" $ val \ "написав $ key <br>";
)
/ / Застосовуємо до всіх елементів масиву
/ / $ Books1 функцію try_walk
array_walk ($ books1, "try_walk", "Роман");
?>
Приклад 7.11. Застосування функції до всіх елементів масиву
У результаті роботи скрипта одержимо:
Роман "Руслан і Людмила" написав А.С. Пушкін
Роман "Війна і мир" написав Л.М. Толстой
Роман "Герой нашого часу"
написав М.Ю. Лермонтов
Зауважимо, що ми не змінили значень у елементів масиву. Щоб їх змінити,
треба було передавати значення в змінну $ val функції try_walk по посиланню.
<? Php
$ Books1 = array (
"А. С. Пушкін" => "Руслан і Людмила",
"Л. Н. Толстой" => "Війна і мир",
"М. Ю. Лермонтов" => "Герой нашого часу");
/ / Створюємо функцію, яку хочемо
/ / Застосувати до елементів масиву
function try_walk (& $ val, $ key) (
$ Key = "<p> Автор:". $ Key. "<br>";
$ Val = "Назва: \" ". $ Val." \ "</ P>";
echo $ key. $ val;
)
/ / Застосовуємо до всіх елементів масиву
/ / $ Book1 функцію try_walk
array_walk ($ books1, "try_walk");
print_r ($ books1);
?>
Приклад 7.12. Застосування функції до всіх елементів масиву. Варіант 2
У результаті роботи скрипта одержимо:
Автор: А.С. Пушкін
Назва: "Руслан і Людмила"
Автор: Л.М. Толстой
Назва: "Війна і мир"
Автор: М.Ю. Лермонтов
Назва: "Герой нашого часу"
Array ([О. С. Пушкін] =>
Назва: "Руслан і Людмила"
[Л.М. Толстой] =>
Назва: "Війна і мир"
[М.Ю. Лермонтов] =>
Назва: "Герой нашого часу")
Виділення подмассіва
Функція array_slice
Оскільки масив - це набір елементів, цілком імовірно, буде потрібно виділити
з нього який-небудь поднабор. У PHP для цих цілей є функція array_slice. Її
синтаксис такий:
array_slice (масив,
номер_елемента [, довжина])
Ця функція виділяє подмассів довжини довжина в масиві масив, починаючи з
елемента, номер якого заданий параметром номер_елемента. Позитивний
номер_елемента вказує на порядковий номер елемента відносно початку
масиву, негативний - на номер елемента з кінця масиву.
<? Php
$ Arr = array (1,2,3,4,5);
$ Sub_arr = array_slice ($ arr, 2);
print_r ($ sub_arr);
/ *
виведе Array ([0] => 3 [1] => 4 [2] => 5),
тобто подмассів, що складається з елементів
3, 4, 5 * /
$ Sub_arr = array_slice ($ arr, -2);
print_r ($ sub_arr);
/ / Виведе Array ([0] => 4 [1] => 5),
/ / Тобто подмассів, з елементів 4, 5
?>
Приклад 7.13. Використання функції array_slice ()
Якщо задати параметр довжина при використанні array_slice, то буде виділений
подмассів, що має рівно стільки елементів, скільки задано цим параметром.
Довжину можна вказувати і негативну. У цьому випадку інтерпретатор видалить з
кінця масиву число елементів, рівне модулю параметра довжина.
<? Php
$ Arr = array (1,2,3,4,5);
$ Sub_arr = array_slice ($ arr, 2, 2);
/ / Містить масив з елементів 3, 4
$ Sub = array_slice ($ arr, -3, 2);
/ / Теж містить масив з елементів 3, 4
$ Sub1 = array_slice ($ arr, 0, -1);
/ / Містить масив з
/ / Елементів 1, 2, 3, 4
$ Sub2 = array_slice ($ arr, -4, -2);
/ / Містить масив з елементів 2, 3
?>
Приклад 7.14. Використання функції array_slice (). Варіант 2
Функція array_chunk
Є ще одна функція, схожа на array_slice () - це array_chunk (). Вона
розбиває масив на кілька подмассівов заданої довжини. Синтаксис її такий:
array_chunk (масив, розмір
[, Сохранять_ключі])
У результаті роботи array_chunk () повертає багатовимірний масив, елементи
якого представляють собою отримані подмассіви. Якщо задати параметр
зберігати ключі як true, то при розбитті будуть збережені ключі вихідного
масиву. В іншому випадку ключі елементів замінюються числовими
індексами, які починаються з нуля.
Приклад 7.15. У нас є список запрошених, оформлений у вигляді масиву їх
прізвищ. У нас є столики на три персони. Тому потрібно розподілити
всіх запрошених по троє.
<? Php
$ Persons = array ("Іванов", "Петров",
"Сидорова", "Зайцева", "Волкова");
$ Triples = array_chunk ($ persons, 3);
/ / Ділимо масив на подмассіви
/ / По три елементи
foreach ($ triples as $ k => $ table) (
/ / Виводимо отримані трійки
echo "За столиком номер $ k сидять: <ul>";
foreach ($ table as $ pers)
echo "<li> $ pers";
echo "</ ul>";
)
?>
Приклад 7.15. Використання функції array_chunk ()
У результаті отримаємо:
за столиком номер 0 сидять:
• Іванов
• Петров
• Сидорова
за столиком номер 1 сидять:
• Зайцева
• Волкова
Сума елементів масиву
У цьому розділі ми познайомимося з функцією, що обчислює суму всіх
елементів масиву. Сама задачу обчислення суми значень масиву гранично
проста. Але навіщо писати зайвий раз один і той самий код, якщо можна
скористатися спеціально створеної і завжди доступною функцією. Функція
ця називається, як можна здогадатися, array_sum (). І як параметр їй
передається тільки ім'я масиву, суму значень елементів якого потрібно
обчислити.
Як приклад використання цієї функції наведемо рішення більш
складного завдання, ніж просто обчислення суми елементів. Цей приклад також
ілюструє застосування функції array_slice (), яку ми обговорювали трохи
раніше.
Приклад 7.16. Нехай дано масив натуральних чисел. Потрібно знайти в ньому таке
число, що сума елементів праворуч від нього дорівнює сумі елементів зліва від нього.
<? Php
/ / Масив задається функцією array
$ Arr = array (2,1,3,4,5,6,4);
/ / Перебираємо кожен елемент масиву $ arr.
/ / Для циклу поточний ключ масиву
/ / Міститься у змінній $ k,
/ / Поточне значення - у змінній $ val
foreach ($ arr as $ k => $ val) (
$ P = $ k 1;
/ / Синтаксис array array_slice (
/ / Array array, int offset [, int length])
/ / Array_slice виділяє подмассів
/ / Довжини length в масиві array,
/ / Починаючи з елементу offset.
$ Out_next = array_slice ($ arr, $ p);
/ / Отримуємо масив елементів,
/ / Що йдуть після поточного
$ Out_prev = array_slice ($ arr, 0, $ k);
/ / Отримуємо масив елементів,
/ / Що йдуть перед поточним
/ / Функція mixed array_sum (array array)
/ / Підраховує суму елементів масиву array
$ Next_sum = array_sum ($ out_next);
$ Prev_sum = array_sum ($ out_prev);
/ / Якщо сума елементів до поточного дорівнює
/ / Сумі елементів після, то виводимо
/ / Значення поточного елемента
if ($ next_sum == $ prev_sum)
echo "value: $ val";
/ / Можна подивитися, що представляють собою
/ / Розглянуті масиви на кожному кроці
/ / Print_r ($ out_next); echo "<br>";
/ / Print_r ($ out_prev);
/ / Echo "$ next_sum, $ prev_sum <br>";
echo "<hr>";
)
?>
Приклад 7.16. Програма пошуку числа, такого що сума елементів праворуч від нього
дорівнює сумі елементів зліва від нього


156.Які ви знаєте стрічкові функції в мові PHP?

Система PHP містить ряд функцій для роботи з рядками. Наступний список
містить деякі з найбільш поширених строкових функцій.
strlen (string) - визначає довжину рядка string.
ltrim (string) - видаляє символи роздільники на початку рядка string.
rtrim (string) - видаляє символи роздільники в кінці рядка string.
strpbrk (string, char) - шукає в рядку string символ char. Повертає false або рядок, що починається з знайденого символу.
strtoupper (string) - перетворює рядок у верхній регістр.
strtolower (string) - перетворює рядок у нижній регістр.
strrev (string) - повертає рядок string у зворотному порядку.
eregi (pattern, subject) - виконує незалежне від регістру символів порівняння з
виразом. У рядку subject відбувається пошук регулярного виразу,
заданого рядком pattern.
157. Наведіть приклад розділу стрічкі за завдання шаблоном за допомога функції split () в мові PHP.
157.Наведіть приклад розділу стрічкі за завдання шаблоном за допомога функції split () в мові PHP.
split

split - Розкладає рядок в елементи масив за регулярним віразом

Опис:

array split (string zrazok, string string, int [limit]);

Повертає масив рядочків, що були відокремлені у рядку string символами, що збігаються з zrazok. Якщо вінікне помилка, функція поверну false.
СЛІД пам'ятати, що zrazok чутлівій до регістру.

Щоб Отримати перші п'ять полів із рядка у / etc / passwd: Приклад 1. split ()
$ Passwd_list = split (":", $ passwd_line, 5);

Щоб Отримати частини дати, ЯКІ віділені символами слеш, крапки або дефісу: Приклад 2. split ()

$ Date = "04/30/1973"; / / роздільнікі - символи слеш, крапки або дефісу
list ($ month, $ day, $ year) = split ('[/.-]', $ date);
echo "Month: $ month; Day: $ day; Year: $ year <br> \ n";

Якщо вам не потрібна могутність регулярних віразів використову функцію explode (), що працює швідше, бо не потребує звертання до механізму регулярних віразів.

Якщо ви бажаєте розбіваті за символами, що є службовими у регулярно віразах, унікайте ЇХ службовісті за допомога зворотної похілої. Якщо вам здається, що функція робить щось не так, будь ласка, дивіться файл regex.7
158. Для чого використовуються регулярні віразі в мові PHP?

158.Для чого використовуються регулярні віразі в мові PHP?
Регулярні віразі (англ. «regular expressions») - сучасна система пошуку текстових фрагментів в електронних документах, заснована на спеціальній системі запису зразків для пошуку. Зразок (англ. «pattern»), задаючій правило пошуку, по-українськи такоже іноді називають "шаблоном", "Маска". У PHP регулярні віразі використовуються для складних маніпуляцій з рядками.
Усі ЦІ функції беруть регулярний віраз, як перший параметр.
PHP вікорістовує POSIX розшірені регулярні віразі, що визначені у POSIX 1003.2.
У PHP існує два різних механізму для обробки регулярних
виразів: POSIX-сумісні і Perl-сумісні (скорочено PCRE). Їх
синтаксис багато в чому схожий, проте Perl-сумісні регулярні вирази
більш потужні і до того ж працюють набагато швидше. Починаючи з версії PHP
4.2.0, PCRE входять в набір базових модулів і підключені за замовчуванням. POSIX-
сумісні РВ включені за замовчуванням тільки у версію PHP для Windows.
Основні функції для роботи з Perl-сумісними регулярними виразами:
preg_match (pattern, string, [result, flags]) і preg_match_all (pattern, string, result,
[Flags])>, де:
pattern - шаблон регулярного вираження;
string - рядок, в якій проводиться пошук;
result - містить масив результатів (нульовий елемент масиву містить
відповідність всьому шаблоном, перший - першому «захопленого» подшаблону і
т.д.);
flags - необов'язковий параметр, що визначає те, як впорядковані результати
пошуку.
Ці функції здійснюють пошук за шаблоном і повертають інформацію про те,
скільки разів відбулося збіг. Для preg_match () це 0 (немає збігів) або
1, оскільки пошук припиняється, як тільки знайдено перше збіг. Функція
preg_match_all () виробляє пошук до кінця рядка і тому знаходить все
збіги. Всі точні збіги містяться в першому елементі масиву result
у кожної з цих функцій (для preg_match_all () цей елемент - теж масив).
.
Аналогом preg_match є булева функція POSIX-розширення ereg (string
pattern, string string [, array regs])
Функція ereg () повертає TRUE, якщо збіг знайдено, і FALSE - у
іншому випадку.
Синтаксис регулярних виразів
Суворе визначення регулярного виразу виглядає досить громіздке.
Почнемо з неформального опису.
Регулярний вираз є рядком. Цей рядок складається з
власне регулярного виразу (шаблону), виділеного за допомогою
спеціального символу роздільника (це можуть бути символи «/», «|», «(«, «!» і т.п
) І модифікатора, що впливає на спосіб обробки РВ.
Надалі це опис буде розширено.
Наприклад, в регулярному виразі / \ d (3) - \ d (2) - \ d (2) / m символ «/» є
роздільником, \ d (3) - \ d (2) - \ d (2) - безпосередньо регулярний вираз
(Шаблон), а m - модифікатор.
Міць регулярних виразів породжена в основі своїй їх здатністю
включати в шаблон альтернативи і повторення. Вони кодуються в шаблоні з
допомогою метасимволів. Метасимволи відрізняється від будь-якого іншого символу тим,
що має спеціальне значення.
Одним з основних метасимволів є зворотний слеш «\». Він змінює тип
символу, наступного за ним, на протилежний, тобто якщо це був звичайний
символ, то він може перетворитися на метасимволи, якщо це був метасимволи, то
він втрачає своє спеціальне значення і стає звичайним символом (це потрібно
для того, щоб додавати до тексту спеціальні символи як звичайні). Наприклад,
символ d в звичайному режимі не має ніяких спеціальних значень, але \ d є
метасимволи, що означає «будь-яка цифра». Символ «.» У звичайному режимі
означає «будь-який одиничний символ», а «\." означає просто крапку.
Інше призначення зворотного слеша - кодування недрукованих символів, таких
як:
\ N - cімвол перекладу рядка;
\ E - символ escape;
\ T - cімвол табуляції;
\ Xhh - символ в шістнадцятковому коді, наприклад \ x41 є буква A і т.д.
Ще одне призначення зворотного слеша - позначення генеруються символьних
типів, таких як:
\ D - будь-яка десяткова цифра (0-9);
\ D - будь-який символ, який не є десяткового цифрою;
\ S - будь-який порожній символ (пробіл або табуляція);
\ S - будь-який символ, який не є порожнім;
\ W - символ, використовуваний для написання Perl-слів (це літери, цифри та символ
підкреслення), так званий «словниковий символ»;
\ W - несловарний символ (всі символи, крім визначених \ w).
Що мається на увазі під «символьним типом»? Просто кожен метасимволи
приймає значення (одне) з класу можливих значень, заданих
автоматично або вручну. Символьні типи, що задаються користувачем,
описуються з допомогою квадратних дужок (докладніше про це пізніше). Вище
наведені символьні типи, діапазон значень яких заздалегідь визначений
мовою програмування.
Приклад використання наведених вище метасимволів:
/ \ D \ d \ d plus \ d is \ w \ w \ w /
Це РВ означає: тризначні числа, за яким слідує підрядка plus, будь-яка
цифра, потім is і слово з трьох словникових символів. Зокрема, даним РВ
задовольняють рядки: «123 plus 3 is sum», «213 plus 4 is 217».
Взагалі розрізняють два безлічі метасимволів: ті, що розпізнаються в будь-якому
місці шаблону, за винятком нутрощі квадратних дужок, і ті, що
розпізнаються всередині квадратних дужок.
Квадратні дужки [] застосовуються для опису підмножин і всередині
регулярного виразу розглядаються як один символ, який може
приймати значення, перераховані всередині цих дужок. Однак якщо першим
символом всередині дужок є ^, то значенням символьного класу можуть бути
тільки символи, НЕ перераховані всередині дужок.

159.    Наведіть приклад  заміни фрагмантів стрічки за допомогою функції ereg_replace().

ereg_replace

ereg_replace - заміняє рядочки, що збігаються з регулярним виразом

Опис:

string ereg_replace(string zrazok, string zamina, string string);

Ця функція відшукує у рядку string збіги з регулярним виразом zrazok та міняє ці збіги на zamina. Функція повертає змінений рядок string. (Тобто поверне первісний рядок, якщо не було збігів).

Наприклад:
$zrazok ="[чЧ][оО][рР][тТ]";
$zamina = "янгол";
$bulo = "Де його чорти взяли";
echo "було: $bulo <br>";
$nove = ereg_replace($zrazok, $zamina, $bulo);
echo "нове: $nove <br>";

Оглядач покаже:
було: Де його чорти взяли
нове: Де його янголи взяли

Якщо zrazok містить рядочки у дужках, то zamina може містити рядочки виду \\цифра. Замість цих рядочків функція підставить текст, що збігся з виразом у дужках. \\0 підставить увесь збіг зі zrazok.

Наприклад:
$zrazok ="(кращий)";
$zamina = "\\0 най\\1";
$bulo = "Він кращий";
echo "було: $bulo <br>";
$nove = ereg_replace($zrazok, $zamina, $bulo);
echo "нове: $nove <br>";

Оглядач покаже:
було: Він кращий
нове: Він кращий найкращий

Можна використовувати до 9 рядочків із дужками.
Якщо дужки вкладені, то їх номер рахують за відкривними дужками.

Цей код можна використовувати у програмі, що допоможе повернути справжнє значення слів у великих текстах, написаних ще тоді, коли українців називали русичами.
$str_from_file = "Севастополь - город русской славы";
$zrazok ="(.*)( русской )(.*)";
$zamina = "\\1 украинской \\3";
$bulo = $str_from_file;
echo "було: $bulo <br>";
$nove = ereg_replace($zrazok, $zamina, $bulo);
echo "нове: $nove <br>";

Оглядач покаже:
було: Севастополь - город русской славы
нове: Севастополь - город украинской славы

Ще приклади:
$string = ereg_replace("^","<BR>,$string);
/* Вставить вказівку <BR> на початку рядка. */

$string = ereg_replace("$","<BR>",$string);
/* Вставить вказівку <BR> у кінці рядка. */

$string = ereg_replace("\n","",$string);
/* Вилучить символ повернення каретки у рядку $string. */

160.Наведіть приклад   використання  функції ereg().
ereg

ereg - Шукає збіги з регулярним виразом

Опис:

int ereg(string zrazok, string string, array [zbig]);

У рядку string шукає збіги з регулярним виразом, указаним у zrazok.

Пошук чутливий до регістру.

Функція повертає true, якщо у рядку string найдений збіг із zrazok, чи false, якщо збігу не було чи виникла помилка.

Якщо частини регулярного виразу взяти у дужки та викликати функцію з третім параметром regs, то збіги з частинами виразу збережуться у елементах масиву regs.

У $zbig[0] буде частина рядка string, що збіглася з усім виразом.
У $zbig[1] буде збіг із частиною виразу,що починається з першої лівої дужки;
У $zbig[2] буде збіг із частиною виразу,що починається з другої лівої дужки та т.д.
Якщо збігу з усім виразом не відбулося, то зміст $regs не зміниться.

Наприклад, якщо
ereg("1(23(45)67)8(9)ab", "zzz123456789abzzz", $zbig);
то
zbig[0] = 123456789ab
zbig[1] = 234567
zbig[2] = 45
zbig[3] = 9
zbig[4] =

Якщо у рядку декілька рядочків збігається з регулярним виразом, то функція задовольниться першим збігом зліва.

Наступний код відшукує дату у ISO форматі та покаже її у форматі ДД.ММ.РРРР:
$date = "дата є 2001-03-04";
if ( ereg( "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs ) ) {
    echo "$regs[3].$regs[2].$regs[1]";
} else {
    echo "Нема дати за зразком РРРР-ММ-ДД у рядку: $date";
}

Ще приклади:
ereg("abc",$string);
/* Поверне true, якщо "abc" є у $string. */

ereg("^abc",$string);
/* Поверне true, якщо "abc" стоїть на початку рядка $string. */

ereg("abc$",$string);
/* Поверне true, якщо "abc" стоїть у кінці рядка $string. */

ereg("([[:alnum:]]+) ([[:alnum:]]+) ([[:alnum:]]+)", $string, $regs);
/* Розмістить у $regs[1], $regs[2] та $regs[3] три слова, які відокремлені пробілом. */

Приклади регулярних виразів:
Перевірить правильність email адреси, наприклад, abc.def.user@eee.ghi.host.com:
[a-z0-9_-]+(\.[a-z0-9_-]+)*@[a-z0-9_-]+(\.[a-z0-9_-]+)+

Перевірить правильність email адреси з іменем, наприклад, "Joe Doe" :
(\"?[a-zA-Z]+\"?[ \t]*)+\<[a-z0-9_-]+(\.[a-z0-9_-]+)*@[a-z0-9_-]+(\.[a-z0-9_-]+)+\>

Перевірить правильність протоколу, наприклад, htpp://, ftp:// or https://
[a-z]+://

Перевірить правильність числа з крапкою, наприклад, 1.2 та 0.5:
-?[0-9]+\.[0-9]+


160.    Наведіть приклад   використання  функції ereg().
161.    Наведіть приклад  встановлення cookies в php.


Файл cookie є повідомленням браузеру Web від сервера Web. Браузер
зберігає повідомлення в текстовому файлі. Це повідомлення надсилається потім назад
на сервер кожен раз, коли браузер запитує сторінку із сервера.
Основне призначення cookies полягає в ідентифікації користувачів і
можливу підготовку спеціально налаштованої для них сторінки Web. При
відвідуванні сайту Web, що використовує cookies, на сайті може бути запропоновано
заповнити форму, щоб надати таку інформацію, як своє ім'я та
можливі інтереси. Ця інформація упаковується в cookie і надсилається
браузеру Web, який зберігає її для подальшого використання. Коли ви
наступного разу відвідуєте той же самий сайт Web, браузер пошле cookie
серверу Web. Сервер може використовувати цю інформацію, щоб створити
індивідуалізовані сторінки Web. Тому, наприклад, замість звичайної
вітальною сторінки можна побачити привітальну сторінку зі своїм
ім'ям.
У PHP файли cookies створюють за допомогою функції setcookie (). Всі дані cookie
зберігаються в глобальній змінній PHP $ _COOKIE і доступні для подальших
сторінок.
setcookie (name, value, expiration, path, domain, security) - визначає файл cookie,
який посилається разом з іншими заголовками HTTP. Як і інші
заголовки, файли cookie повинні надсилатися до будь-якого висновку роботи
сценарію (це обмеження протоколу). Тому потрібно, щоб звернення до
функції було поміщено до будь-якого висновку, включаючи теги і будь-які символи
роздільники. Якщо висновок відбувається до звернення до цієї функції, то setcookie ()
не виконається і поверне FALSE. Якщо setcookie () виконується успішно, то
повертається TRUE. Це не вказує на те, що користувач прийняв cookie.
Параметри setcookie () пояснюються в наступній таблиці.
Параметр Опис
name Ім'я cookie. Цей ідентифікатор зберігається в глобальній змінній
$ _COOKIE І доступний в наступних сценаріях
value Значення cookie. Значення, пов'язане з ідентифікатором cookie. Зберігається на
комп'ютері користувача, тому не повинно містити секретної
інформації
expiration Час, коли закінчується значення cookie або стає більш недоступним. Цей час можна задати за допомогою функції time (). Файли cookie, без заданого значення часу закінчення, завершують своє існування при закритті браузера path Вказує шляху доступу на сервері, для яких cookie дійсний або доступен.Прямая коса риска "/" говорить, що cookie доступний у всіх папках domain Домен, в якому доступний cookie . Якщо домен не визначено, за замовчуванням використовується хост, на якому створено cookie. Значення domain повинні містити в рядку як мінімум дві точки ".", Щоб бути допустимими
security Вказує, чи буде cookie передаватися через HTTPS. Значення 1 означає, що cookie передається через захищене з'єднання. Значення 0 означає стандартну передачу HTTP.
Приклад 8.2.
siteaccess.php
<? Php
/ / Якщо користувач клацає на кнопці Login,
/ / Створюється cookie, що містить його ім'я користувача і IP-адреса
if ($ _REQUEST [auth] == "yes" & & $ _REQUEST [user])
(
echo "Ласкаво просимо". "". $ _COOKIE [User]. "На сайт з обмеженим
доступом.
Тепер на вашому жорсткому диску зберігається cookie,
і ви можете звертатися до цього сайту без реєстрації при кожному зверненні ";
)
else
(
header ("Location: setcookie.php? auth = no");
)
?>

162.    Яке призначення фунції  file() в мові PHP?

Функція file() призначена для зчитування інформації з файлу в змінну типу масив. Синтаксис у неї такий же, як і у функції readfile(), за винятком того, що в результаті роботи вона повертає масив:
array file ( ім'я_файлу [, use_include_path])
Що ж за масив повертає ця функція? Кожен елемент даного масиву є стрічкою у файлі, інформацію з якого ми зчитуємо (його ім'я задане аргументом ім'я_файлу). Символ нового рядка теж включається в кожен з елементів масиву. У випадку помилки функція file(), як і всі вже розглянуті, повертає false. Додатковий аргумент use_include_path знову ж визначає, чи шукати даний файл у директоріях include_path. Відкривати віддалені файли за допомогою цієї функції теж можна, якщо не заборонено сервером. Починаючи з PHP 4.3 робота з бінарними файлами за допомогою цієї функції стала безпечною.
Наприклад, маємо файл my_file.html наступного змісту:
<h1>Без праці не виймеш і рибку зі ставка</h1><b>Тихіше їдеш – далі будеш</b>Прочитаємо його вміст за  допомогою функції file():<?php$arr = file ("my_file.html"); foreach($arr as $i => $a) echo $i,": ", htmlspecialchars($a), "<br>";?>
У результаті на екран буде виведене наступне повідомлення:
0: <h1>Без праці не виймеш і рибку зі ставка</h1>1: <b>Тихіше їдеш – далі будеш</b>
163.    Наведіть приклад віддаленого доступу за допомогою функції  file().

164.    Наведіть приклад запису та зчитування файлів на сервер в мові PHP?165.    Як завантажити файл на сервер через форму HTML  в мові PHP?
164.Наведіть приклад запису та зчитування файлів на сервер в мові PHP?
Для того щоб записати дані у файл, доступ до якого відкритий функцією fopen(), можна використовувати функцію fwrite(). Синтаксис якої наступний:
int fwrite ( покажчик на файл, рядок [, довжина])
Ця функція записує вміст рядка стрічкою у файл, на який вказує покажчик на файл. Якщо зазначено додатковий аргумент довжину, то запис закінчується після того, як записана кількість символів, рівна значенню цього аргументу, або коли буде досягнутий кінець рядка.
У результаті своєї роботи функція fwrite() повертає кількість записаних байтів або false, у випадку помилки.
Приклад. Нехай у нашій робочій директорії немає файлу my_file.html. Створимо його і запишемо в нього рядок тексту:
<?php$h = fopen("my_file.html","w");$text = "Цей текст запишемо у файл.";if (fwrite($h,$text))   echo "Запис пройшов успішно";else   echo "Відбулася помилка при записі даних";fclose($h);?>
У результаті роботи цього скрипта в браузері ми побачимо повідомлення про те, що запис пройшов успішно, а у файлі my_file.html з'явиться рядок “Цей текст запишемо у файл.”. Якби цей файл існував до того, як ми виконали цей скрипт, усі дані, що знаходилися в ньому були б вилучені.
Якщо ми хочемо прочитати дані з існуючого файлу, однієї функції fopen(), як і у випадку з записом даних, недостатньо. Вона лише повертає покажчик на відкритий файл, але не зчитує ні одного рядка з цього файлу. Тому для того, щоб прочитати дані з файлу, потрібно скористатися однією зі спеціальних функцій: file, readfile, file_get_contents, fread, fgets і т.п.
Приклад. Прочитаємо вміст файлу my_file.html
<?php$h = fopen("my_file.html","r+");  // відриваємося файл на запис і читання$content = fread($h,filesize(“my_file.html”));// зчитуємо вміст файлу в стрічкуfclose($h); // закриваємо з'єднання з файломecho $content; // виводимо вміст файлу на екран браузера?>

166.    Для чого використовуються шаблони в мові PHP ?


Що таке шаблон в мові програмування? Можна сказати, що шаблон - це
текст зі змінними всередині нього. При обробці шаблону відбувається заміна
змінних на їхні значення.
Для чого нам був потрібен такий шаблон? Щоб,
наприклад, можна було змінити стиль відображення документа, не змінюючи коду
програми.
Найпоширеніша відповідь на запитання, навіщо потрібні шаблони, звучить
приблизно так: шаблони потрібні для того, щоб відокремити логіку роботи
програми від способу подання даних, тобто від дизайну.
Наведений приклад шаблону - один з найпростіших. Для його обробки
використовується тільки функція підстановки str_replace (). Частіше за все для того,
щоб працювати з шаблонами, створюють бібліотеки класів. У принципі створювати
свою бібліотеку не обов'язково, оскільки існує безліч вільно
поширюваних бібліотек шаблонів, над функціональністю яких
трудяться великі колективи розробників, намагаючись зробити їх
універсальними, потужними і швидкими. Деякі з таких бібліотек ми і
розглянемо. Але для початку сформулюємо задачу, на прикладі розв'язання якої
будемо демонструвати використання різних шаблонів.
Отже, завдання:
Потрібно згенерувати web-сторінку зі списком статей, наявних в базі
даних. Для простоти вважаємо, що стаття має назву title, автора author,
короткий зміст abstract і повне утримання fulltext, яке представлене
або у вигляді тексту в базі даних, або у вигляді посилання на файл. Список повинен
бути організований так, щоб при клацанні мишею на назві статті її повне
зміст з'являлося в новому вікні.
Шаблони підстановки
Як можна вирішити таке завдання способом простий підстановки, тобто тим методом,
яким ми вирішили задачу відображення документів?
Потрібно придумати шаблон для цієї сторінки і десь його зберігати (у файлі або в
базі даних). Очевидно, що ми не можемо придумати шаблон для всієї сторінки,
тому що не знаємо, скільки статей в базі даних. У шаблоні ж ми
домовилися використовувати тільки html і метасимволи <! ім'я елемента>. Тому
ми можемо написати тільки шаблон для одного рядка списку, який вже
програмно треба перетворити на потрібну кількість рядків.
<li> <a href = "<! fulltext>"
target = new> <! title> </ a>
(<! Author>) <br> <p> <! Abstract> </ p>
Крім того, тут є ще одна заковика - з відображенням посилання на повний
текст статті. Якщо ми будемо діяти за правилом підстановки (міняти все
метасимволи на їхні значення з бази даних), то може вийти, що замість
<! Fulltext> вставимо не посилання на текст, а сам текст. Тобто для цього елемента
потрібна додаткова перевірка перед заміною і якісь додаткові
дії у разі, якщо в полі fulltext міститься текст статті, а не посилання на
файл. Не будемо ускладнювати собі життя і домовимося, що в полі fulltext завжди
міститься лише посилання на файл. Тоді завдання можна вирішити наступним
чином:
<?
$ Li_tmpl = file_get_contents ("tmpl.html");
/ / Зчитуємо шаблон рядки з файлу
/ / Встановлюємо з'єднання і вибираємо
/ / Базу даних
$ Conn = mysql_connect ("localhost",
"Nina", "123")
or die ("Cant connect");
mysql_select_db ("book");
$ Sql = "SELECT * FROM Articles";
$ Q = mysql_query ($ sql, $ conn);
/ / Відправляємо запит
$ Num = mysql_num_rows ($ q);
for ($ i = 0; $ i <$ num; $ i) (
$ Tmpl .= $ li_tmpl;
$ Tmpl = str_replace ("<! Title>",
mysql_result ($ q, $ i, "title"), $ tmpl);
$ Tmpl = str_replace ("<! Author>",
mysql_result ($ q, $ i, "author"), $ tmpl);
$ Tmpl = str_replace ("<! Abstract>",
mysql_result ($ q, $ i, "abstract"), $ tmpl);
$ Tmpl = str_replace ("<! Fulltext>",
mysql_result ($ q, $ i, "fulltext"), $ tmpl);
)
echo $ tmpl;
?>
Якщо шаблон був такий, як наведено вище, то отримаємо приблизно наступне.
1. Лекція дає уявлення про те, що таке мова PHP, для чого він створювався
спочатку і як використовується зараз, якими можливостями володіє.
2. Рекомендації з установки і налаштування web-сервера й інтерпретатора PHP
В принципі метод досить простий і зручний, але вимагає додаткових зусиль
програміста при виникненні завдань більш складних, ніж проста підстановка
значень. Для вирішення завдань, де потрібно робити підстановку цілих блоків
або навіть перевіряти умови, створюють класи шаблонів, такі як FastTemplate і
Smarty. Обговоримо їх докладніше.
Шаблони FastTemplate
FastTemplate - це набір класів, що дозволяють реалізувати роботу з шаблонами.
Логіку додати шаблон FastTemplate не можна, вся вона повинна знаходитися в коді
програми. Ідея роботи шаблонів FastTemplate полягає в тому, що будь-яка
велика сторінка складається з безлічі шматочків, найменші з яких -
звичайні рядки тексту, і вони отримують ім'я і значення.
Що являє собою файл шаблону FastTemplate? Це звичайний html-файл, в
якому можуть зустрічатися змінні особливого виду, згодом
оброблювані методами класу FastTemplate.
Синтаксис змінних в шаблонах FastTemplate описується таким
виразом: (([A-Z0-9_]))
Це означає, що змінна повинна починатися з фігурною дужки "(". Другий і
наступні символи повинні бути літерами верхнього регістру від A до Z,
цифрами або символами підкреслення. Мінлива обчислюється за допомогою
закриває фігурної дужки ")".
(TITLE)
(AUTH20)
(TOP_OF_PAGE)
Приклад 15.1. Обчислення змінної з допомогою закриває фігурної дужки
")"
Як вже було сказано, основна ідея FastTemplate - створення сторінки з
допомогою вкладених шаблонів.


167.    Опишіть основні властивості програми phpmyadmin.

phpMyAdmin — веб-додаток з відкритим кодом, написаний на мові PHP, представляє собою веб-інтерфейс для адміністрування СУБД MySQL. phpMyAdmin дозволяє через браузер здійснювати адміністрування сервера MySQL, запускати команди SQL та переглядати вміст таблиць й баз даних. Додаток користується великою популярністю у веб-розробників, оскільки дозволяє керувати СУБД MySQL без безпосереднього вводу SQL команд, надаючи дружній інтерфейс.

За допомогою phpMyAdmin можна:
створювати та знищувати бази даних;
створювати, копіювати, знищувати, перейменовувати та змінювати таблиці;
ремонтувати та оптимізувати таблиці;
видаляти, редагувати та додавати поля таблиць;
виконувати будь-які SQL-запити;
управляти ключовими полями;
завантажувати текстові файли в таблиці;
створювати та читати дамп таблиць, з підтримкою компресії за допомогою алгоритмів Zip, GZip-RFC 1952 або Bzip2;
експортувати дані в формати CVS, XML та Latex, з підтримкою компресії за допомогою алгоритмів Zip, GZip-RFC 1952 або Bzip2;
перевіряти посилальну (referential) цілісність даних у MyISAM-таблицях;
виконувати запити за взірцем (QBE), створювати складні запити автоматично з'єднуючи необхідні таблиці;
створювати схему бази даних у форматі PDF;
шукати дані по всій базі даних або по окремій її частині;
трансформувати дані, що зберігаються, в будь-який формат використовуючи набір вбудованих функцій, як-то відображення BLOB-даних як зображення або посилання для закачування;
працювати з таблицями InnoDB.
Програма phpMyAdmin має інтерфейс, перекладений на кілька десятків мов, серед яких є російська та українська.


168.    Яке призначення PHP функцій  mysql_connect(), mysql_select_db() ?  Наведіть приклад їх використання.

Робота з MySQL (збереження відомостей у базі данних). Для початку створюємо базу даних та таблицю. Входимо в MySQL, та виконуємо команди:
CREATE DATABASE products;
CREATE TABLE clients (name VARCHAR(25), email VARCHAR(25), choice VARCHAR(8)); Для спілкування MySQL з PHP знадобляться наступні функції.
int mysql_connect(string hostname, string username, string password); Створити з'єднання з MySQL. Параметри: Hostname - ім'я хоста, на якому знаходиться база даних. Username - ім'я користувача. Password - пароль користувача. Функція повертає параметр типу int, що не false, якщо з'єднання пройшло успішно, та дорівнює false у випадку помилки.
int mysql_select_db(string database_name, int link_identifier); Вибрати базу даних для роботи. Параметри: Database_name - ім'я бази даних. link_identifier - ID з'єднання, що отримано з функції mysql_connect. (параметр необов'язковий, якщо він не вказується, то використовується ID від останнього виклику mysql_connect) Функція повертає значення true або false
int mysql_query(string query, int link_identifier); Функція виконує запит до бази даних. Параметри: Query - рядок, що містить запит link_identifier - див. попередню функцію. Функція повертає ID результату або 0, якщо відбулася помилка.
int mysql_close(int link_identifier); Функція закриває з'єднання з MySQL. Параметри: link_identifier - див. вище. Функція повертає значення true або false Тепер наш файл email.php буде мати наступний вигляд:
 <? /* Цей скрипт одержує змінні з request.html */  /* Деякі змінні */  $hostname = "localhost"; $username = "myusername"; $password = "mypassword"; $dbName = "products";  /* Таблиця MySQL, у якій зберігаються данні */ $userstable = "clients";  /* мило адміністратора */ $adminaddress = "administration@me.com";  /* створити з'єднання */ MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не можу створити з'єднання ");  @mysql_select_db("$dbName") or die("Не можу вибрати  базу даних ");  PRINT "<CENTER>"; PRINT "Привіт, $name."; PRINT "<BR><BR>"; PRINT "Спасибі за ваш інтерес<BR><BR>"; PRINT "Вас цікавлять $preference. Інформацію ми відішлем вам на мило: $email."; PRINT "</CENTER>";  /* Відправляємо мильце */ mail($email, "Запит на інформацію", "$namen\n Спасибі за ваш інтерес!\n Вас цікавлять $preference\n Ми їх поширюємо безкоштовно. Звернетеся в найближчу філію нашої компанії та одержите цей продукт.\n ");  mail("administration@me.com", "Був запит на інформацію.", "$name цікавили $preference\n email-адреса: $email. \n");  /* Вставити інформацію щодо клієнта в таблицю */ $query = "INSERT INTO $userstable VALUES ('$name','$email', '$preference')";  $result = MYSQL_QUERY($query);  PRINT "Інформація про вас занесена в базу даних.";  /* Закрити з'єднання */ MYSQL_CLOSE(); ?>
Напишемо скрипт apple.php
 <?/* Скрипт показує клієнтів, що яблука люблять більше, ніж апельсини */ $hostname = "localhost"; $username = "myusername"; $password = "mypassword"; $dbName = "products";  /* Таблиця MySQL, у якій зберігаються дані */ $userstable = "clients";  /* створити з'єднання */ MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не можу створити з'єднання ");  @mysql_select_db("$dbName") or die("Не можу вибрати базу даних ");  /* Вибрати всіх клієнтів що полюбляють яблука */ $query = "SELECT * FROM $userstable WHERE choice = 'Яблука'";  $result = MYSQL_QUERY($query);  /* Як багато знайшлося таких */ $number = MYSQL_NUM_ROWS($result);  /* Надрукувати всіх у красивому вигляді*/ $i = 0;  IF ($number == 0) { PRINT "<CENTER><P>Любителів яблук немає</CENTER>"; } ELSEIF ($number > 0) { PRINT "<CENTER><P>Кількість любителів яблук: $number<BR><BR>"; WHILE ($i < $number){ $name = mysql_result($result,$i,"name"); $email = mysql_result($result,$i,"email"); PRINT "Клієнт $name любить Яблука<BR>"; PRINT "Його Email: $email."; PRINT "<BR><BR>"; $i++; } PRINT "</CENTER>"; } ?> Тут ми використовували дві новi функції:
int mysql_num_rows(int result); Функція повертає кількість рядків у результаті запиту: Параметр result - містить ID результату запиту.
int mysql_result(int result, int i, column); Функція повертає значення в стовпці column та в рядку i. Ось i все, Комерційний продукт практично


169.      Яке призначення  PHP функцій  mysql(), mysql_query(). Наведіть приклад їх використання.

mysql_query - Посилає запит MySQL

resource mysql_query (string query [, resource link_identifier])

mysql_query () надсилає запит базі даних сервера, на який посилається переданий вказівник. Якщо параметр link_identifier опущений, використовується останнє відкрите з'єднання. Якщо відкриті з'єднання відсутні, функція намагається з'єднатися з СУБД, аналогічно функції mysql_connect () без параметрів. Результат запиту буфферизується. Рядок запиту не повинен закінчуватися крапкою з комою. Тільки для запитів SELECT, SHOW, EXPLAIN, DESCRIBE, mysql_query () повертає вказівник на результат запиту, або FALSE якщо запит не був виконаний.
В інших випадках (INSERT, UPDATE, DELETE, DROP, і т.п.), mysql_query () повертає TRUE в разі успішного запиту і FALSE в разі помилки.

<?php
$result = mysql_query("SELECT * FROM table")
    or die("Invalid query: " . mysql_error());
?>

170.    Яке призначення  PHP функції mysql_fetch_array (). Наведіть приклад їх використання.

mysql_fetch_array - Обробляє ряд результати запиту, повертаючи асоціативний масив, чисельний масив або обидва.

array mysql_fetch_array (resource result [, int result_type])


Повертає масив з обробленим результатом запиту, або FALSE, якщо рядів більше немає.
mysql_fetch_array () розширена версія функції mysql_fetch_row (). У доповненні до зберігання значень у масиві з чисельними індексами, функція повертає значення в масиві з індексами за назвою колонок. Якщо кілька колонок в результаті будуть мати однакові назви, остання колонка буде повернута. Другий опціональний аргумент result_type у функції mysql_fetch_array () - константа і може приймати такі значення: MYSQL_ASSOC, MYSQL_NUM і MYSQL_BOTH. Ця можливість додана в PHP 3.0.7. Значеням за замовчуванням є: MYSQL_BOTH. Використовуючи MYSQL_BOTH, ви отримаєте масив, що складається як з асоціативних індексів, так і з чисельних. MYSQL_ASSOC поверне тільки асоціативні відповідності (аналогічно функції mysql_fetch_assoc () і MYSQL_NUM тільки чисельні (аналогічно функції mysql_fetch_row ()).

<?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    mysql_select_db("mydb");

    $result = mysql_query("SELECT id, name FROM mytable");

    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
        printf ("ID: %s  Name: %s", $row[0], $row[1]);
    }

    mysql_free_result($result);
?>

171.    Наведіть приклад SQL запиту  з оператором SELECT .

        SELECT id, name FROM mytable
                SELECT * FROM mytable
        SELECT id, name FROM WHERE id=2
        SELECT id, name FROM mytable ORDER BY name



172.    Які функції параметру WHERE в структурі SQL оператора SELECT ? Наведіть приклад.

Параметр WHERE в мові SQL виконує фільтрацію рядків які отримуються після запиту, в відповідності з заданими умовами. Умови задаються предикатами. Якщо явно не вказувати предикатів то рядки можуть дублюватися, так як по замовчуванню працює предикат ALL.

SELECT * FROM   mytable WHERE  mycol > 100

 173. Які функції параметру WHERE в структурі SQL оператора UPDATE ? Наведіть приклад.

Параметр WHERE в мові SQL виконує фільтрацію рядків які отримуються після запиту, в відповідності з заданими умовами. Умови задаються предикатами. Якщо явно не вказувати предикатів то рядки можуть дублюватися, так як по замовчуванню працює предикат ALL.

UPDATE mytable SET active='0' WHERE active='1'


174.    Які функції параметру ORDER BY в структурі SQL оператора SELECT ? Наведіть приклад.

ORDER BY дозволяє впорядкувати результат за заданими стовпцями. Щоб сортувати в зворотньому порядку після стовпців за якими сортують пишуть DESC:
SELECT name FROM mytable ORDER BY name DESC;
Варто також зауважити, що ORDER BY не може стояти перед WHERE інакше будуть помилки.

175.    Які функції параметру GROUP  BY в структурі SQL оператора SELECT ? Наведіть приклад.

GROUP BY гуртує рядки, що мають спільну властивість таким чином, щоб функція агрегації могла бути застосована до кожної групи.

SELECT * FROM mytable GROUP BY field



176.    Які функції параметру LIMIT  в структурі SQL оператора SELECT ? Наведіть приклад.

LIMIT  - задає максимальну кількість записів в результаті.

SELECT * FROM   mytable LIMIT 5                     - вибере 5 рядків починаючи з першого
SELECT * FROM   mytable LIMIT 3,5                  - вибере 5 рядків починаючи з третього


177.    Наведіть приклад SQL оператора для пошуку  записів із заданим фрагментом  в деякому полі таблиці.

SELECT * FROM   mytable WHERE name LIKE 'А%'


178.    Наведіть приклад SQL оператора для пошуку  записів із числовим значенням    деякого полі в заданих межах.

SELECT * FROM   mytable WHERE year BETWEEN 1990 AND 2010

179.    Наведіть приклад SQL запиту  з оператором UPDATE.

UPDATE - змінює значення полів в уже існуючих записах. Синтаксис:

UPDATE назва_таблиці SET стовпець1=значення1, стовпець2=значення2, ... WHERE умова;

UPDATE mytable SET active='0' WHERE id='10'


180.    Наведіть приклад SQL запиту  з оператором INSERT.

INSERT - оператор додає до таблиці рядок. Має такий синтаксис:

INSERT INTO назва_таблиці VALUES (список_значень);
Значення мають йти в такому ж порядку, як і стопці таблиці. При необхідності можна задати конкретні стовпці, та конкретні значення:
INSERT INTO students (name) VALUES ('Іван');
Всі інші поля отримають значення за замовчуванням.

INSERT INTO mytable (id, LastName, FirstName) VALUES (5, 'Tjessem', 'Jakob')


181.    Наведіть приклад SQL запиту  з оператором DELETE.

DELETE - найпростіший оператор:

DELETE FROM назва_таблиці WHERE умова


DELETE FROM mytable WHERE id=15




182.    Наведіть приклад SQL запиту  з оператором CREATE TABLE.

CREATE TABLE - Даний запит використовується для створення таблиці в базі даних.
Синтаксис SQL CREATE TABLE:
CREATE TABLE table_name (
column_name1 data_type,
column_name2 data_type,
column_name3 data_type,
....
)

CREATE TABLE Persons (id int,LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255))data_type визначає до якого типу даних відноситься стовпець.


183.    Наведіть етапи створення сайту на CMS Joomla.
184.    Яка послідовність установки CMS Joomla ?
185.    Які основні налаштування для  CMS Joomla  при інсталяції ?
186.    Опишіть послідовність інсталяції компонентів в CMS Joomla ?
187.    Опишіть послідовність встановлення заданого темплету в CMS Joomla ?
188.    Як захистити контент від несанкціонованого доступу в CMS Joomla ?
189.    Опишіть етапи створення структури контенту в CMS Joomla ?
190.    Як додати новий інформаційний ресурс в CMS Joomla ?
191.    Як додати запис нового користувача для доступу до захищених ресурсів в  в CMS Joomla ?
192.    Як здійснюється управління модулями в CMS Joomla ?
193.    Яке призначення пакету WordPress ?
194.    Опишіть призначення та основні характеристики CMS Drupal.
195.    Опишіть основні властивості скрипта PHPBB.

Немає коментарів:

Дописати коментар