Якого типу мов програмування належить php. PHP – Що таке РНР. PHP може зберігати інформацію користувача

1 рік тому | 98.5K

Всім привіт, мене звуть Сергій Ніконов, для тих, хто мене не знає, розповім трохи про себе. Мій досвід у розробці веб-сайтів і веб-додатків більше 10 років і в цьому відео я постараюся відповісти на одне з найчастіше запитуваних питань - Яку мову програмування вивчати першою?

Дивіться відео Перша мова програмування. Який обрати у 2018 році?

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

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

Але ще хочу наголосити, що не намагайтеся вивчити відразу всі мови програмування, як деякі студенти, трохи спробували, наприклад писати на Java, через пару днів перекинулися на Python, потім на . У результаті, з таким підходом, не освоїли жодної мови, оскільки інформації, яку потрібно вивчити дуже багато у студентів у голові каша і при цьому у них втрачається мотивація взагалі вивчати програмування.

Тому поки ви хоча б на середньому рівні не вивчите одну мову програмування, не перемикайтеся на іншу.

Яку ж мову програмування вибрати як перше?

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

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

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

Досить часто мені запитують:

Насамперед необхідно зрозуміти, що HTML - це мова розмітки, а не програмування і відноситься до верстки html-сторінок. За допомогою , ви пояснюєте браузеру, як має виглядати ваша сторінка, якого розміру та кольору мають бути блоки на сайті.

Як розпочати програмування на PHP?

Програмувати на PHP дуже просто і все, що вам потрібно - це

«СЕРЕДНЯ ЗАГАЛЬНООСВІТНЯ ШКОЛА №5»

Дослідницька робота на тему:

"Мова Web-програмування - PHP"

Виконав: учень

9 «А» класу

Рябов Артем

Педагог: Абдразакова О.К.

ВСТУП………………………………………………………………………………….…...3

Глава 1. Вступ до PHP і MySQL………………………..……………..…….………….5

1.1. Що таке PHP?.………………………………………………………………………5

1.2. Можливості PHP…………………………………………………………………….5

1.3. коротка історія PHP……….…...…………………….……………………...…......6

1.4. Чому потрібно обирати PHP ………………………………………………………7

1.5. Що таке MySQL ……………………………………………………………………..7

1.6. Можливості MySQL…………………………………………………………………8

Розділ 2. Приклади використання PHP……………………………………………………...9

2.1. Робота з формами……………………………………………………………………..9

2.2. Робота з MySQL (збереження даних у базі даних)...…………………………11

2.3. Робота з MySQL (отримання даних з бази даних).…………………………13

ВИСНОВОК………………………………………………………………………..……….15

БІБЛІОГРАФІЧНИЙ СПИСОК …………………………………………………...…16

ДОДАТКИ………………………………………………………………………………...17

Вступ

PHP – мова програмування, що використовується на стороні WEB-сервера для динамічної генерації HTML-сторінок. Про це говорить і розшифровка його назви: PHP – Personal HyperText Processor.

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

Дуже приємна особливість PHP - те, що його команди включаються у звичайні HTML-сторінки за допомогою спеціальних тегів, які змушують PHP-машину виконувати на сервері потрібні дії. Програмам на PHP не потрібні спеціальні CGI-директорії з особливими правами доступу. Більше того, на одній сторінці можна довільно чергувати "простий" HTML та PHP-код.

PHP не залежить від платформи. PHP чудово інтегрується у всі популярні веб-сервери: Apacce та IIS, Zens та Netscape Enterprise Server, працює під Windows та OS/2, MacOS та практично всіма UNIX-подібними системами. Як наслідок - PHP працює практично у всіх хостерів, що дозволяють власні скрипти, що виконуються.

Чудова особливість PHP – його інтегрованість практично з усіма сучасними інтернет-технологіями. PHP підтримує більшість сучасних веб-протоколів: IMAP, FTP, POP, XML, SNMP та інші. PHP чудово працює з базами даних. Важко знайти СУБД, підтримка якої була б реалізована в PHP. MySQL та MS SQL Server, PostgreSQL та Oracle, Sybase та Interbase... Один тільки перелік баз даних, що підтримуються PHP, займе, напевно, цілий екран.

PHP включає величезну кількість вбудованих функцій: обробки рядків і масивів, роботи з файловою системоюта з HTTP, електронною поштою, датою і часом, кирилицею та іншими національними алфавітами... Коли я вперше почав програмувати на PHP, то був просто вражений великою кількістю вбудованих функцій! Завдяки їм багато алгоритмів, що вимагають у більшості мов написання програмного коду розміром у кілька екранів, реалізуються на PHP однією командою (точніше, викликом однієї функції).

Сучасні тенденції розвитку мов програмування не оминули і PHP. Кошти об'єктно-орієнтованого програмування з'явилися ще PHP3. А в об'єктній моделі PHP4 у повному обсязі реалізовано класичні поняття об'єктно-орієнтованого програмування: успадкування, інкапсуляція та поліморфізм.

Все вищевикладене дозволяє без будь-якої натяжки назвати PHP безперечним лідером серед мов веб-програмування.

Ціль дослідження– Вивчити та подивитися приклади виконання скриптів PHP

Об'єкт дослідження-Мова PHP, Бази даних MySQL.

Предмет дослідження– функціональне значення та актуальність мови.

Гіпотеза дослідженняполягає в тому, що ця мова дуже проста, легко інтегрується в HTML, у зв'язці PHP+MySQL+HTML набагато перевершує простий HTML.

З гіпотези, сформовані такі завдання :

Завдання:

Вивчити особливості та можливості мови PHP;

Порівняти функціонал PHP та HTML;

Ознайомитись з базами даних MySQL;

Опрацювати отримані результати, зробити висновки.

Теоретичною основою представленого матеріалу є історичні дані, представлені у довідниках, матеріал з Інтернету.

Методи дослідження:у процесі проведення досліджень застосовувалися опис, аналіз літератури на тему, вивчення деяких змінних.

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

Структура та зміст роботи включають:

Вступну частину, в якій обґрунтовано вибір та актуальність теми.

Розділ 1. «Вступ до PHP та MySQL» містить 6 розділів. У першому розділі йдеться про пояснення, що таке PHP. У другому описано його можливості. У третьому розділі розділу описується історія мови PHP. У четвертому – сказано чому варто вибирати саме цю мову програмування. П'ятий та шостий розділи присвячені інформації про бази даних MySQL.

Розділ 2. "Приклади використання PHP"складається із 3 розділів. У першому розділі показано як у PHP легко обробляти дані з HTML – форм. У другому ми заноситимемо інформацію до бази даних. У третьому розділі отримуватимемо інформацію з баз даних.

Висновокмістить основні висновки на тему, що підтверджують висунуту гіпотезу дослідження.

Глава 1. Вступ до PHP та MySQL

1.1. Що таке PHP?

PHP – це скрипт-мова (scripting language), що вбудовується в HTML, який інтерпретується та виконується на сервері. Найпростіше це показати на прикладі:

приклад

Після виконання цього скрипту ми отримаємо сторінку, де буде написано:

Hi, I'm a PHP script!(Див. додаток 1)

Дуже просто і марно.

Основна відмінність від CGI-скриптів, написаних іншими мовами, типу Perl або C - це те, що в CGI-програмах ви самі пишете виведений HTML-код, а використовуючи PHP - ви вбудовуєте свою програму в готову HTML-сторінку, використовуючи відкриваючий і закриває теги (у прикладі).

Відмінність PHP від ​​JavaScript, полягає в тому, що PHP-скрипт виконується на сервері, а клієнту передається результат роботи, тоді як JavaScript-код повністю передається на клієнтську машину і тільки там виконується.

Любителі Internet Information Server знайдуть, що PHP дуже схожий на Active Server Pages (ASP), а ентузіасти Java скажуть, що PHP схожий на Java Server Pages (JSP). Всі три мови дозволяють розміщувати код, який виконується на Web-сервері, всередині HTML сторінок.

1.2. Можливості PHP

У кількох словах – на PHP можна зробити все, що можна зробити за допомогою CGI-програм. Наприклад: обробляти дані з форм, генерувати динамічні сторінки, отримувати та посилати куки (cookies).

Крім цього PHP включена підтримка багатьох баз даних (databases), що робить написання Web-додатків з використанням БД до неможливості простим.

Ось неповний перелік підтримуваних БД:

Adabas D InterBase Solid
dBase mSQL Sybase
Empress MySQL Velocis
FilePro Oracle Unix dbm
Informix PostgreSQL

На додаток до всього PHP розуміє протоколи IMAP, SNMP, NNTP, POP3 і навіть HTTP, а також має можливість працювати з сокетами (sockets) та спілкуватися за іншими протоколами.

1.3. Коротка історія PHP

Початком PHP можна вважати осінь 1994, коли Расмус Лердорф (Rasmus Lerdorf) вирішив розширити можливості своєї Home-page (Домашньої сторінки) і написати невеликий движок для виконання найпростіших завдань. Такий двигун був готовий до початку 1995 року і називався Personal Home Page Tools. Вмів він не дуже багато – розумів найпростішу мову і лише кілька макросів.

До середини 1995 року з'явилася друга версія, яка називалася PHP/FI Version 2. Приставка FI – приєдналася з іншого пакету Расмуса, який умів обробляти форми (Form Interpritator). PHP/FI компілювався всередину Apache та використовував стандартний API Apache. PHP скрипти виявилися швидше аналогічних CGI - скриптів, так як серверу не було необхідності породжувати новий процес. Мова PHP за можливостями наблизилася до Perl, найпопулярнішої мови для написання програм CGI. Була додана підтримка багатьох відомих баз даних (наприклад, MySQL і Oracle). Інтерфейс до GD – бібліотеки, дозволяв генерувати картинки на льоту. З цього моменту почалося широке поширення PHP/FI.

Наприкінці 1997 року Зеев Сураскі (Zeev Suraski) і Енді Гутманс (Andi Gutmans) вирішили переписати внутрішній двигун, з метою виправити помилки інтерпретатора і підвищити швидкість виконання скриптів. Через півроку, 6 червня 1998 вийшла нова версія, яка була названа PHP 3. До літа 1999 PHP 3 був включений в кілька комерційних продуктів. За даними NetCraft на листопад 1999 р. PHP використовувався в більш ніж 1 млн. доменах.

1.4. Чому потрібно обирати PHP

Розробникам Web-додатків немає необхідності говорити, що web-сторінки - це текст і картинки. Цікавий сайт повинен підтримувати певний рівень інтерактивності з користувачем: пошук інформації, продаж продуктів, конференції тощо. Зазвичай усе це реалізувалося CGI-скриптами, написаними на Perl. Але CGI-скрипти дуже погано масштабуються. Кожен новий виклик CGI вимагає від ядра породження нового процесу, а це займає процесорний час і витрачає оперативну пам'ять. PHP пропонує інший варіант - він працює як частина Web-сервера, і цим схожий на ASP від ​​Microsoft.

Білл Карвін, працює веб-розробником понад 20 років

Нещодавно сайт Stack Overflow опублікував свій щорічний огляд провідних трендів Stack Overflow Developer Survey 2017 . У ньому PHP досі займає одну з провідних ролей.

  • JavaScript - 62.5%
  • SQL – 51.2%
  • Java - 39.7%
  • C# - 34.1%
  • Python - 32.0%
  • PHP – 28.1%
  • C++ – 22.3%
  • C – 19.0%
  • TypeScript - 9.5%
  • Ruby – 9.1%

PHP все ще використовується частіше, ніж Ruby. Нехай простять мене фанати мови Ruby, тому що ця інформація в першу чергу пов'язана з популярністю мови програмування, ніж зручністю її використання.

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

Повинні пройти десятки років, перш ніж популярна мова зникне. До цих пір існують програми, розроблені такими мовами, як Perl, Pascal, BASIC і навіть COBOL. Можливо, ці мови зараз майже не використовуються у розробці нових проектів, але створені за допомогою них програми продовжують існувати.

Нірбхай Наїк, Digital Marketing

Якби це питання було задано 2-3 роки тому, то відповідь була б безперечно позитивною. Основна причина поганої репутації – не найзручніший дизайн. Крім того, багатьом розробникам не подобаються ті зміни, які зазнала ця мова за останні 10 років.

Але зараз PHP7 цілком може стати порятунком.

Отже, що покращилося в PHP 7? Порівняно з попередньою версією, в PHP 7 було внесено величезну кількість змін на краще. Ось деякі з них:

  • Поліпшена продуктивність
  • Оператор "космічний корабель"
  • Null-коалесцентний оператор
  • Типи скалярних параметрів
  • Підказки по типах, що повертаються
  • Анонімні класи

І багато іншого. Нові функції можуть повернути PHP до життя, але для цього нам доведеться почекати і поспостерігати за тим, як розробники будуть застосовувати нововведення в PHP 7.

Куди ж рухаєтьсяPHP7?

PHP7 – це справжній порятунок для PHP. Безперечно, що дизайн раніше PHP залишав бажати кращого.

Неузгодженість, пов'язана з іменами функцій, може стати проблемою для розробників. Не дивуйтеся, якщо виявите функцію, яка не знаходиться на своєму місці. У PHP7 було виправлено багато похибок, але команді розробників ще необхідно зробити достатню роботу, щоб покращити репутацію цієї мови. Багато інтернет-статей говорять про те, що PHP помирає або збирається померти.

Що кажеTOBIE INDEX про майбутнєPHP?

Tobie Index – це індекс, що оцінює популярність мов програмування на основі підрахунку результатів пошукових запитів.

Як видно з картинки вище, PHP повільно рухається вгору завдяки PHP7. Якби ми розглядали це зображення в 2014 р., ми точно могли б сказати, що PHP незабаром зникне. Після 2004 року, коли мова отримала звання року, її популярність стабільно знижувалася. Графік виглядає разючим, показуючи, що на початку розробникам сподобалося те, що може запропонувати PHP, але після більш нові та перспективні технології витіснили його.

WordPress переходить наJavaScript

А тепер давайте поговоримо про далеко не райдужні перспективи, що очікують PHP у майбутньому. WordPress, найпопулярніша CMS (система керування контентом), повільно переходить на JavaScript. WordPress, покриваючи 25% вебсайтів в інтернеті, виявив явний інтерес щодо JavaScript.

Метт Мулленвег, генеральний директор WordPress, своєю заявою шокував багатьох: “ Ми усвідомили, що колишні технології не дозволять нам рухатися у напрямку майбутнього.” Що це може означати для WordPress та PHP-розробників? Чи вмирає PHP? На даний момент дуже складно щось припускати, але подібна ситуація виглядає не найкращим чином для PHP.

Ситуація на ринку

Було б безглуздо спробувати передбачити майбутнє мови програмування, не беручи до уваги переваги професійних розробників програмного забезпечення. Якщо ви PHP-розробник або працюєте в IT-фірмі, то ви, напевно, маєте уявлення про те, яке місце на ринку займає PHP.

В даний час на ринку існують наступні тенденції щодо мови PHP:

  1. PHP-розробників набагато простіше знайти, ніж експертів з інших мов програмування.
  2. Найняти спеціаліста у сфері PHP набагато дешевше.
  3. Через наявність достатньої кількості фахівців обслуговування та підтримка продуктів даною мовою не є дорогою
  4. PHP, ймовірно, один із найпростіших для вивчення мов програмування. Це дозволяє компаніям наймати молодих перспективних фахівців та навчати їх відповідним чином.
  5. Існує безліч фреймворків і CMS (систем управління вмістом), що працюють на PHP. Наприклад, WordPress, Joomla, Magento, Drupal та ін.

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

Що вам робити, якщо виPHP-Розробник?

Це гарне питання. Багато розробників переключилися з різних технологій саме на PHP, тоді як інші, навпаки, перестали ним користуватися і перейшли на інші варіанти. Все залежить від того, чим ви хочете займатись у майбутньому. У цьому плані PHP надійний і не зникне найближчим часом.

Хорошою порадою в цьому випадку буде вивчити ще одну мову. Це допоможе почуватися безпечніше в майбутньому.

Висновки

Чи помер PHP? Навряд чи. Чи зникне ця мова в майбутньому? Важко сказати, оскільки на це впливатиме дуже багато факторів.

Влад Ка пише про веб-розробки

На сьогоднішній день веб-розробники можуть вибрати певний інструмент для кожного окремого проекту.

Мова PHP може бути використана для цілого ряду завдань: наприклад, ReactPHP дозволяє розробнику запускати повноцінний сервер, що постійно обробляє запити. За допомогою PHP можна створювати тривалі процеси. Крім того, існує безліч інструментів для підтримки та управління цими процесами (наприклад, supervisord).

Вільям Харлі, розробник. Працює з веб-розробкою з 1996

Згідно з деякими джерелами на PHP працює близько 80%+ всього доступного інтернету. Ця цифра відрізняється залежно від методології збору даних, але так чи інакше це дуже високий показник!

Річард Кеннет Енг використовує Fortran, Tandem TAL, C/C++, C#, Obj-C, Java, Smalltalk, Python, Go

Більшість сайтів у світі існує на PHP. Навряд чи власники та творці сайтів збираються викинути витрачені гроші на вітер.

PHP завжди входив до десятки мов програмування за версіями різних видань: TIOBE, RedMonk, IEEE Spectrum, PYPL, CodeEval, HackerRank та ін.

У IT-сфері мови програмування дуже рідко «зникають». Навіть COBOL залишив нам щось у спадок. Якщо мова програмування виявляється корисною, то вона, ймовірно, існуватиме вічно.

Мова мертва тільки тоді, коли ніхто не користується. Навряд чи це те, що відбувається зараз із PHP.

Вахрох Вейн, розробник на Delphi/PHP/C++ Builder/JS/C#, а також трейдер цінних паперів

Останніми роками популярність цієї мови зменшувалася. А в цей час розробники переписували його відповідно до стандартів 201X. До речі, на відміну від Phyton, PHP був переписаний без втрати зворотної сумісності (99% збереження) існуючої кодової бази.

З появою PHP 7+, мова отримала сучасні функціональні можливості (синтаксис, конструкції), і тепер із нею вкрай приємно працювати. Крім того, більшість забула, що JavaScript, прийнявши на себе дизайн передньої частини, вплинув на всі базові програми, крім PHP.

Макс Чистоклетов, захоплюється розробкою мовами Haskell/Scala

Залежить від того, що ви маєте на увазі під словом «зникне». Програми, написані на PHP, не візьмуть і не зникнуть одного разу (або навіть протягом кількох місяців). Тому ні.

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

Я порадив би ознайомитися з таким явищем, як Lindy effect - Wikipedia . Я думаю, що воно зможе дати приблизне розуміння того, як довго може жити існуюча технологія.

Мова PHP впевнено почувається в топах найпопулярніших мов програмування, однак у всього є кінець. Чи загрожує PHP виявитися не при справах, що може його замінити і яку мову ви вибрали б для створення сайту типу Facebook? На ці запитання відповіли користувачі сайту Quora.

Джордж Мауер, викладає JS

PHP вмирає, Java вмирає, C# вмирає, SQL вмирає, JavaScript вмирає, C вмирає. І все одно проектів цими мовами значно більше, ніж проектів усіма непереліченими мовами програмування разом узятих. Так, іноді нові тренди можуть витісняти щось усталене, але цей процес відбувається вкрай повільно. Зовсім не означає, що це найстаріше – погане.

Я не можу погодитися з тим, що PHP був найкращим варіантом для створення Facebook. Творці цієї соціальної мережі насправді лише частково використовують PHP. В даний час можна сказати, що замість цієї мови вони мають власний діалект під назвою Hack. PHP був просто мовою, якою Цукерберг та інші розробники починали працювати над цим проектом.

Не можна сказати, що PHP був таким уже й поганим вибором. Все ж таки це мова, яка відповідає вимогам швидкої розробки додатків. А це в свою чергу є одним із ключових факторів для стартапу – у випадку з Facebook цей фактор відіграв вирішальну роль. Спочатку PHP був такою собі збірною колекцією скриптів. І це дозволяє легко перейти на нижчий рівень абстракції та створювати код на C тоді, коли дійсно існує потреба в оптимізації. Все це було ретельно вивчено та успішно впроваджено у більшість сучасних мов.

Будь ласка, викиньте зі своєї голови ідею, що соціальна мережа вимагає чогось специфічного від мови програмування. Створення більшої частини коду буде стандартним і звичним. Так, є деякі проблемні області на кшталт зіставлення можливих і потенційних друзів, але схожі питання найчастіше вирішуються за допомогою спеціалізованого програмного забезпечення. Наприклад, графо-орієнтованих баз даних. Вам потрібно буде вкрай ретельно та акуратно будувати свою систему, а також відмінно розбиратися в області DevOps, але те саме доведеться робити і з іншими мовами. Замість ідеальної мови розробки для вас скоріше важливі досвідчені та знаючі розробники.

І це, власне, підводить мене до суті питання. PHP вкрай привабливий хоча б тому, що величезна кількість фахівців на даний момент добре його знають. Але ви навряд чи захочете, щоб хтось із подібних фахівців працював над вашим стартапом. Ви захочете найняти людей, які знають відразу кілька мов, людей, які мають сформований і обґрунтований світогляд. А такі люди у своїй більшості не особливо шанують PHP.

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

Наразі такою мовою є Elixir. Він базується на віртуальній машині Beam і є досить близьким родичем мови Erlang, який протягом кількох десятиліть чудово демонстрував себе у низці проектів. Крім того, ця мова показує просто неймовірні результати щодо продуктивності.

Іншим чудовим вибором може стати мова Go. Головним чином це мова низького рівня, але нею можна робити все те ж, що і мовами високого рівня. Нехай мені й не подобаються деякі рішення щодо його структури, але він, так чи інакше, заслуговує на увагу.

Ще одним варіантом може стати Clojure. Існує ймовірність, що знайти розробників на цій мові буде не так просто, але з урахуванням того, що ця мова - прямий нащадок LISP, я можу щиро назвати її неймовірно потужною і дає безліч варіантів розвитку.

Декілька важливих зауважень:

  • придивіться до F# на фреймворку.Net або навіть до всюдисущого C#. Якщо ви все ж таки оберете останній варіант, то будьте готові до того, що для створення відмінної команди вам доведеться переглянути і просіяти набагато більше резюме;
  • за допомогою Scala можна створювати вражаючі речі;
  • Node.js. Я просто мушу згадати Node.js. Особисто я вважаю, що на даний момент на вершині ланцюжка стоїть Javascript, але Node вже довгий час також входить до списку мов, що досить широко використовуються. Крім того, є велика кількість висококваліфікованих спеціалістів.

© Андрій Кухарчик
Комп'ютерна газета

Вступ

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

Минули ті часи, коли багато користувачів персональних комп'ютерів з метою економії дискового простору видаляли програму "Інтернет Експлорер" з усіма нами улюбленої операційної системи, тому що просто не потребували її. Тепер навіть ті, хто не має доступу до Павутини, намагаються не чіпати цієї програми, оскільки формати мережі Інтернет давно вже перейшли в інші сфери нашого комп'ютерного життя. А якщо в комп'ютері оселився модем, уникнути наявності браузера просто неможливо, тому що дуже хочеться хоч одним оком подивитися, а що ж там, за межею телефонної лінії? І коли знайомство відбулося, відмовитися від переваг мережі вже не так просто. Через деякий час починаєш усвідомлювати, що треба якось вкласти себе та свої ідеї та проявитися на безкрайніх просторах Глобальної мережі. Зробити свою сторінку стало навіть престижно, і нехай у ній мало корисного, а лічильник фіксує тільки Ваші не часті відвідини, що може стати початком серйозного проекту та змінити все Ваше життя.

Подорожуючи просторами глобальної мережі Інтернет, Ви, звичайно ж, не раз звертали увагу на гіперпосилання, які часом досягають зовні дуже великих розмірів і просто дивують наявність дивних символів. І звичайно, всі звертали увагу на форми, які потрібно заповнити та отримати щось натомість. Але мало хто замислюється над тим, як усе це працює і що це все означає.

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

Історія РНР

Починати потрібно завжди з найпростішого, і зараз я спробую познайомити Вас із програмуванням скриптовою мовою РНР. РНР (читається як пі-ейч-пі) з'явився на світ восени 1994 року, і його творець - Расмус Лердорф - використовував мову у своїх цілях, щоб мати уявлення про тих людей, які відвідують його сайт і знайомляться з його резюме.

За словами автора, РНР було написано буквально за день у проміжках між діловими зустрічами. Спочатку це була просто непоказна CGI-оболонка, написана мовою Perl, і служила вона виключно для специфічних цілей. Для довідки – СGI (Common Gateway Interface) – загальний шлюзовий інтерфейс, є стандартом, який призначений для створення серверних додатків HTTP.

Така програма, яку називають шлюзом або CGI-програмою, запускається сервером у реальному режимі часу. Сервер передає запити користувача CGI-програмі, яка їх обробляє та повертає результат своєї роботи на екран користувача.

Таким чином, відвідувач отримує динамічну інформацію, яка може змінюватися внаслідок впливу різних факторів. Сам шлюз (скрипт CGI) може бути написаний різними мовами програмування - C/C++, Fortran, Perl, TCL, Unix Schell, Visual Basic, Apple Script та іншими подібними мовами. Але у випадку з РНР, для написання його в початковому варіанті була обрана мова Perl як найбільш проста і доступна.

В результаті подальшої експлуатації з'ясувалося, що оболонка має маленьку продуктивність, і автор змушений був переписати все наново, але вже мовою С, що дозволило збільшити швидкість роботи РНР. Користувачі сервера, де розташовувався сайт із першою версією РНР, попросили собі такий самий інструмент, і хоч автор не припускав, що хтось інший користуватиметься цією мовою, досить швидко РНР переріс у самостійний проект, і на початку 1995 року вийшла перша відома нам версія товару. Ім'я першого пакета було Personal Home Page Tools (засоби для персональної домашньої сторінки). На той момент РНР мав більш ніж скромні можливості. Він мав найпростіший аналізатор коду, який розумів кілька спеціальних команд, а також різні утиліти для використання на домашній сторінці, які необхідні для побудови таких корисних речей, як гостьова книга, лічильник, чат, системи статистики тощо. До середини 1995 року мова була ґрунтовно перероблена, з'явилася обробка форм, були додані функції роботи з базами даних, і в такому вигляді вийшла друга версія продукту.

Сьогодні РНР - це потужний кроссплатформенний набір засобів, що розташовується на сервері і призначений для обробки спеціального коду, що вбудовується в HTML-сторінку. Завдяки цьому з'являється можливість легко створювати динамічні сайти. Файли, створені таким чином, зберігаються та обробляються на сервері, і коли відвідувач запитує документ із РНР, скрипт обробляється не браузером відвідувача, як, наприклад, Java Script, а сервером, і відвідувачу передаються вже лише результати роботи. Так само працює CGI-програма, написана на С або Perl. Але, на відміну від CGI, код РНР можна вбудовувати у будь-яке місце HTML-сторінки, що є основною перевагою по відношенню до CGI. Крім того, сама мова РНР дуже проста для вивчення і не вимагає будь-яких специфічних знань. Наприклад, особисто мені цілком вистачило досвіду, набутого років десять тому на уроках інформатики у школі, де ми вивчали мову Бейсік на дуже модних та дорогих тоді Ямахах. Незважаючи на таку райдужну характеристику, має РНР і недоліки. Варто відзначити досить повільну (порівняно з програмами на CGI) роботу скриптів РНР, а також складність написання великих та складних програм. Так чи інакше, РНР залишається мовою, що інтерпретується, що неодмінно веде до погіршення продуктивності у випадку дуже великих і складних програм, але, для виконання нескладних маніпуляцій на сайті, РНР - найкращий вибір. Недарма до середини 2000 року РНР використовувався на понад 2,5 мільйонах сайтів!

Особливості РНР

Як і у будь-якої мови програмування, РНР має свій синтаксис. Він дуже схожий на синтаксис мови С чи Perl. Програмісти, які пишуть цими мовами, зможуть освоїти РНР буквально за кілька днів. Але навіть якщо Ви ніколи не програмували, РНР піддасться Вам легко та забезпечить базу для переходу на більш складний рівень. Усі команди досить логічні, а правила прості. Синтаксис включає оператори, розділені між собою точкою з комою. Одна з основних помилок програмістів-початківців - відсутність точки з комою між операторами. На щастя, помилки в РНР за замовчуванням видаються на екран (на відміну від CGI, де всі помилки записуються в лог-файл), і знайти їх при певній уважності та досвіді не складе великої праці. Тим більше, що розумний інтерпретатор підкаже номер рядка, в якому сталася помилка.

Для програмування на РНР Вам знадобиться будь-який текстовий редактор, але для зручності він повинен забезпечувати підсвічування синтаксису та нумерацію рядків. Я використовую CuteHTML, що входить до комплекту постачання непоганого FTP-менеджера CuteFTP останніх версій. Редактор дуже зручний, без зайвих непотрібних функцій, сам вбудовується в контекстне меню, не вимагає інсталяції та має все необхідне програмування. Ще нам знадобиться комплект для роботи з РНР. Як правило, використовується Apache+PHP, хоча це і не обов'язково підходить будь-який сервер, наприклад IIS Microsoft. Але перший варіант безкоштовний і має велику підтримку документацією (у тому числі російською) та форумами, де можна з'ясувати будь-яке питання.

Тепер давайте перейдемо до справи – напишемо наш перший скрипт. Щоб сервер знав, у якому з файлів є код РНР, його розширення (файлу) необхідно зробити або phtml, або php3, або php. Строго кажучи, може бути призначене будь-яке розширення, але я рекомендую Вам з метою сумісності використовувати phtml. Кожна команда в РНР зазвичай починається з "(тут і далі без лапок). Як Ви пам'ятаєте, кілька команд розділяються крапкою з комою. У будь-якому місці скрипта РНР можна поставити коментар, починається він з "/*", а закінчується - "*/" Якщо коментар маленький і займає тільки один рядок, можна поставити "//" і таким чином легко закоментувати будь-який рядок до його кінця.Як зазвичай пробіли, символи табуляції та переклад рядка просто ігноруються і можуть застосовуватися для покращення читабельності коду РНР.

Виведення на екран та змінні в РНР

РНР дуже легко дозволяє організувати виведення тексту на екран. Розглянемо приклад скрипту:

Цей скрипт може бути розташований у будь-якому місці HTML-документа, і сам по собі він не несе нічого корисного, тому що тільки виводить на екран фразу "Привіт, світ!" Але таким чином ми знайомимося з однією з найпоширеніших команд РНР – виведення інформації на екран користувача. Для того, щоб надати нашому скрипту корисні функції, Познайомимося зі змінними. Змінна характеризується ім'ям, типом та значенням. Ім'я може бути будь-яким і включати цифри, літери англійського алфавіту і дозволені символи (наприклад, символ підкреслення або тире). За типом змінні діляться на цілі, з плаваючою комою та символьними. Значення відповідно до типу може бути практично будь-яким. Наприклад, змінна a=5. Це говорить нам про те, що ім'я у змінної – а, тип – цілочисленний, значення – 5. Ось ще приклади імен та значень:

Як бачите, всі змінні в РНР (але не тільки в ньому) повинні починатися із символу $, що дозволяє інтерпретатору безпомилково відрізняти їх від команд РНР. У першому рядку нашого скрипта змінної $name надається значення 6, і ця змінна автоматично стає цілою. До речі, заздалегідь описувати тип змінної не потрібно, як у мовах Pascal або Visual Basic, але хоча поділ на типи чисто умовний, кожна змінна автоматично прагне використовувати правильний тип відповідно до значення. Другий рядок коду надає змінній $h12 значення 4.89, яке є значенням з плаваючою комою. Третій і четвертий рядки коду надають своїм змінним значення, що є символьними рядками. Все, що укладено в лапки (включаючи цифри), буде інтерпретовано як символьний рядок. Якщо змінні не визначені раніше, але використовуються, їх значення приймається рівним або нулю або порожньому рядку в залежності від типу.

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

Результат роботи скрипта - виведення на екран цифри 4. Підтримуються всі арифметичні операції та функції, багаторівневі дужки, логічні операції, Операції збільшення або зменшення на одиницю та багато іншого. Крім того, дуже просто і природно організується порівняння колись інакше. Для цього РНР застосовується конструкція if () ( ) else ( ). Є різні варіанти синтаксису цього оператора, але цей - основний і найлогічніший з усіх. (якщо) if (умова) (то) (виконується те, що укладено в лапки) (інакше) else (виконується те, що укладено в лапки). Після лапок ставити крапку з комою, як завжди між операторами, не обов'язково. Але всередині лапок - поділ операторів між собою проводиться лише через крапку з комою. Допускається вкладення кількох операторів перевірки один на один. В цьому випадку треба бути дуже уважним до кількості лапок, що закривають, так як при відсутності навіть однієї інтерпретатор видасть помилку коду. Розглянемо нескладний приклад:

При порівнянні на істину застосовується два знаки рівності для того, щоб інтерпретатор міг легко відрізнити порівняння від присвоєння. Результат роботи скрипта - 95, тому що $a не дорівнює $b, а команда echo $b.$a; (Між змінними стоїть точка, а не знак арифметичної операції) виводить поспіль зазначені змінні. Нерівність (брехня) позначається символами!=, допустимі всі інші арифметичні та логічні символи та оператори (наприклад, or, and, >,<= и т.д.).

У РНР є засоби швидкої зміни змінної на одиницю у бік збільшення чи зменшення. Для цього потрібно вказати ім'я змінної та за ним, без знаку рівності, - поспіль два плюси чи мінуси відповідно. Наприклад, $a++; - Змінна $a буде збільшена на одиницю. Підтримується одночасне привласнення одного значення декільком змінним - $a = $b = 4; Обидві змінні дорівнюватимуть чотирьом. Ось ще кілька прикладів нестандартних арифметичних операцій у РНР:

Вкладення файлів у РНР

Кожен, хто зробив хоч одну сторінку в мережі, стикався із проблемою зміни тих чи інших даних на ній. Звичайно, це не складно, коли сторінок кілька або вона одна:-), але якщо Ви зробили великий сайт, маленьке доповнення (наприклад, у меню) у сотні файлів може перетворитися на справжній кошмар! РНР вирішує цю проблему в один раз, дозволяючи вкладати одну сторінку в іншу. Досягається це за допомогою операторів REQUIRE та INCLUDE. Після цих операторів у круглих дужках повинен стояти шлях до файлу, що вкладається. Наприклад, INCLUDE ("text.phtml"). Відмінність між зазначеними операторами полягає в тому, що REQUIRE підміняється вмістом зазначеного файлу і може бути використаний лише один раз, а INCLUDE - вставляє та виконує вміст зазначеного файлу, що дозволяє застосувати його кілька разів, наприклад, у циклі. У будь-якому випадку, при виконанні файлу інтерпретатор РНР (правильно говорити – парсер) перебуває у стані HTML, і для його включення код треба укласти в конструкцію. Вкладення файлів можуть відбуватися лише всередині серверного простору, доступного РНР. Іншими словами, Ви не можете використовувати ім'я файлу http://

Досить часто зустрічаються сайти, посилання яких включають спеціальні символи - &, ?, %. Усе це може бути результатом роботи РНР. Справа в тому, що якщо в кінці посилання додати?ім'я=значення, це значення буде доступно під тим самим ім'ям у файлі, куди вказує посилання. Якщо потрібно додати кілька імен, вони можуть бути розділені знаком &. Тепер ми можемо зробити сайт, який буде доступний лише за допомогою однієї сторінки. А решту інформації ця сторінка буде виводити на підставі отриманих за посиланням даних. Вигляд такого посилання буде приблизно таким: http://имя.ru/index.phtml?link=1. Одиниця в кінці посилання є і наш параметр, який буде підставлятися у файлі index.phtml. Наприклад, ось так:

…початок файлу …… кінець файлу …

Зверніть увагу, що написаний нами код враховує ситуацію, коли відвідувач з різних причин вказав неправильний параметр. У цьому випадку виводиться заздалегідь заготовлена ​​сторінка з повідомленням про помилку. Якщо ж параметр відповідає якомусь із файлів сайту, він у код файлу index.phtml вкладається та виконується. Таким чином, початок і кінець залишаються однаковими, а змінюється лише середина. І будь-які зміни вже не здаються такими страшними, як раніше. Адже зробити їх треба тільки в одному файлі, а це позначиться на всьому сайті.

Є й інший шлях. Його суть полягає в тому, що РНР має доступ до так званих змінних оточення сервера. Одна з цих змінних – запитуваний відвідувачем шлях щодо адреси сайту. І цей шлях стає нам доступним для використання. В цьому випадку посилання у нас будуть такого виду: http://ім'я.ru/index.phtml?patch/name.phtml. Друга частина посилання - patch/name.phtml - буде доступна, якщо ми вважаємо параметр $QUERY_STRING. Наприклад: $add = $QUERY_STRING. Тепер змінимо наш головний файл index.phtml, щоб усе працювало автоматично. А якщо запитуваний параметр не буде вказаний (правильно кажучи - дорівнюватиме порожньому рядку), щоб щось відкрити, надамо змінній $add ім'я файлу, який повинен бути відкритий як головна сторінка. Нехай це буде файл main.phtml. Тоді код буде виглядати так:

…початок файлу …… кінець файлу …

Як бачите, ще простіше. Але відразу хочу застерегти Вас, що цей метод хоч і простіший за перший, але відкриває шлях до отримання інформації про сервер, де розташований сайт з такою організацією структури. Зловмисник або просто цікава людина за наявності певних обставин і знань зможе багато дізнатися про ваш сервер, а це відкриває прямий шлях до злому. Тож будьте обережні і не станьте причиною великих неприємностей. Захиститись від подібних проблем можна, але це вже зовсім інша історія.

Приклад лічильника відвідувань на РНР

Якщо Ви всі уважно прочитали, Ви легко отримаєте стартовий капітал знань, і він дасть Вам можливість самостійно надалі вивчати мову РНР. І наприкінці я пропоную Вам познайомитися з кодом скрипту, який дозволить організувати на будь-якій сторінці Вашого сайту лічильник відвідувань. Цей лічильник не буде повнофункціональним, оскільки має досить багато недоліків, але як приклад застосування РНР цілком годиться. У будь-якому місці Вашої сторінки (але там, де це потрібно) вставте наступний код:

Відвідувачів сторінки -

У тому ж каталозі, що і Ваша сторінка, створіть файл counter.dat, закачайте його на сервер і за допомогою свого FTP-менеджера змініть атрибути цього файлу таким чином, щоб він був доступним для запису. Зазвичай потрібно встановити галочки всіх атрибутах файла. Якщо Ви цього не зробите, скрипт постійно видаватиме помилку при спробі запису у файл. До речі, для того щоб цього не відбувалося, варто поставити перед командою запису і відкриття файлу символ @, він скасує виведення повідомлення про помилку на екран відвідувача. Коли атрибути змінені, оновіть Вашу сторінку на сервері та зверніться до неї на її адресу у браузері. Ви побачите, що там, де Ви вставили код РНР, з'являється рядок: "Відвідувачів сторінки - " і далі число, що відповідає кількості відвідувань. І жодного сліду коду! Він був оброблений на сервері в Інтернеті, а браузер просто переданий результат цього виконання.

Алгоритм цього скрипта дуже простий. У першому рядку ми присвоюємо вибраній змінній ім'я файлу, де зберігатиметься кількість відвідувань. У другій – відкриваємо з'єднання з цим файлом для читання. Далі перевіряємо успішність з'єднання, і якщо файл існує і він доступний для читання, зчитуємо з нього рядок з 10 байт, чого більш ніж достатньо для лічильника, і закриваємо з'єднання з файлом. Збільшуємо показ лічильника на одиницю і виводимо його нове значення на екран. На наступному етапі потрібно записати нове значення лічильника, і для цього ми знову відкриваємо з'єднання (дескриптор) з файлом, але вже на запис з очищенням вмісту файлу. Якщо воно успішне – записуємо туди нове значення лічильника та закриваємо дескриптор файлу. От і все.

На цьому наше перше знайомство з мовою РНР вважатимемо закінченою. Звичайно, залишилося ще дуже багато корисного та цікавого, але, на жаль, все одразу охопити неможливо. Втім, для того і вигадали розумні люди Мережа, щоб зробити доступним недоступне. В Інтернеті є дуже багато корисних ресурсів на тему РНР, і за мінімальних навичок роботи в пошукових системах Ви без зусиль знайдете їх. А я пораджу Вам передплатити розсилку РНР для всіх!, в якій регулярно раз на тиждень з'являються нові статті, приклади скриптів, є розділ запитань-відповідей, а також багато іншої корисної інформації. Знайти форму для передплати та підписатися можна за адресою в мережі.

Там же викладено всі попередні випуски розсилки. А за адресою Ви зможете подивитися, як все це працює у дії. Все, що Ви зустрінете на цьому сайті, – зроблено на РНР. Чат, форум, приватні оголошення, система статистики - це лише мала частина можливостей, що дає нам програмування мовою РНР.