PHP ескриптов език върху сървърната (обслужваща) страна. Той е език сотворен код, който е проектиран зауеб програмиране и е широко използван за създаване на сървърни приложения идинамично уеб съдържание. Автор на езика е канадецът от датски произходРазмус Лердорф. PHP ерекурсивен акроним от PHP: Hypertext Preprocessor (като в самото начало има значение, дадено от създателите му, на Personal Home Page). Пример за PHP приложение еМедияУики – софтуерът, използван отУикипедия.
PHP ескриптов език със синтаксис, базиран наC иPerl. Използва се предимно в интернет среда за изпълнение на широк кръг от услуги и е един от най-популярните езици за програмиране в интернет.
PHP се разпространява под отворен лиценз (PHP License), който по своята същност еBSD лиценз и който позволява безплатно разпространяване на програмния код на интерпретатора на езика, както и създаването на производни интерпретатори под други лицензи с уговорката, че тези интерпретатори не могат да включват PHP в името си. Фактът, че PHP се разпространява свободно, го прави удачен избор за изграждане науеб сървър, базиран изцяло на свободни продукти –GNU/Linux,Apache,MySQL/PostgreSQL и др.
При поискване кодът, който е написан на PHP, се интерпретира от уеб сървъра, на който е качен, и резултатът се връща науеб браузърa. Потребителят не може да види чистия PHP код, без да има достъп до самия файл, в който той е записан. По този начин се осигурява защитата. PHP файловете могат да съдържат текст,HTML,CSS,JavaScript и PHP код и имат разширение*.php.
Самият език е преносим на много изчислителни архитектури и операционни системи като GNU/Linux,UNIX,macOS,Windows.
Съществуват множество модули (разширения) за PHP, които добавят различни функционалности и позволяват много по-бързо и ефективно разработване. Такива допълнителни функционалности към езика са:
функции за обработка (създаване, редактиране) на изображения
На официалния сайт на PHP се намира обширна библиотека с информация за езика и модулите му, която може да се използва както за основно запознаване с езика, така и като справочник по време на работата с него.
Поради отворения характер на езика съществуват множество потребителски групи в България и по света, посветени на програмирането с PHP, където всеки може да получи помощ в работата си с този език.
Началото на PHP е поставено отРазмус Лердорф[3] през1994 г., въпреки че самият Лердорф смята 1995 за рождената година на PHP, защото тогава „отваря“ кода на новия език за програмиране.[4] В началото Размус създаваPerl скриптове за следене на посещенията на резюмето на личната му страница, които впоследствие пренаписва и така се създава първата версия наPHP (тогава означаващоPersonalHomePage).
През1997 г. двамата израелски студенти наTechnion (израелски технологичен институт)Зеев Сураски иАнди Гутманс пренаписват целия език, констатирайки множеството бъгове и отчасти неправилни концепции за строеж на програмен език и по-късно известяват Размус с техните предложения. Той ги приема и така се създава основният екип от разработчици (PHP Core team), който по-късно се превръща в групата на PHP (PHP group). Зеев Сураски и Анди Гутманс заедно сРазмус Лердорф добавят нови функционалности иAPI за допълнителни модули към езика и така се създаваPHP 3. Сураски и Гутманс пренаписват отново ядрото на езика и създаватZend engine през1999 г. Пренаписването е направено основно от Сураски и Гутманс като курсов проект по време на тяхното обучение в Technion. Пренаписването е вследствие на факта, че кодът на PHP 2 е бил труден за поддръжка и доста нестабилен.
През2005 се честват 10 години от създаването на PHP и 10 години от създаването наMySQL.
През годините ядрото на PHP претърпява много промени, като най-забележимите са следните:
22 май 2000 г. – излиза версия 4 на PHP, основана на Zend Engine 1.0.
Юли 2003 г. – версия 5 на PHP, основана на Zend Engine II.
PHP действа главно катофилтър, който взема съдържанието на файл и изпълнява специални PHP инструкции, описани във файла. PHP скриптът има начален и краен таг, между които е разположено съдържанието. Отварящият таг е<?php, а затварящият е?>. Цялата инструкция трябва да завършва с;.[5]
Тук има пример за код, който визуализира „Здравей, свят“:
<?phpecho'Здравей, свят!';/* Hello world */?>
Ето и пример за свързване към база данни и изпълняване на проста заявка към нея:
<?phpsession_start();$dbuser="root";$dbpassword="password";$dbhost="localhost";$dbname="database";$dbc=mysqli_connect($dbhost,$dbuser,$dbpassword,$dbname);$q=mysqli_query($dbc,"SELECT user_id, username, password FROM users WHERE `username` = '".$uname."' AND password = '".$upass."' LIMIT 1");if(mysqli_num_rows($q)==1)$_SESSION['logged']=true;?>
<?php$date=date("d.m.Y H:i:s");echo$date;// Пример 14.07.2020 14:18:25?>
PHP изпълнява кода в рамките на своите граници – кода между<?php и?>, също между<?= и?> (кратко echo). В зависимост от настройките насървъра за отваряща граница може да се използва само<?, но това не се препоръчва.[6] При липса на допълнителна обработка или прекъсване на зареждането на дадена страница всичко извън рамките се изпраща директно към изхода, без да бъде изпълнявано от PHP. Горният пример е еднакъв с долния текст (и наистина е конвертиран в този вид):
Здравей, свят!
Предимство на PHP е, че позволява командите му да бъдат влагани вHTML документите, като крайните потребители не могат да видят изходния код, написан на PHP, който преработва всичко извън рамките му:
<?php// PHP код?>обикновен HTML код<?// още PHP код?>
PHP е безплатен и се разпространява под лиценза на BSD.
PHP може да бъде лесно модифициран и адаптиран към нуждите на прилагащата го организация.
PHP е създаден и пригоден за разработката на уеб приложения.
PHP не изисква особени умения от разработчици, работили на структурни езици – езикът е с прост и интуитивен синтаксис за такива разработчици.
PHP е широко разпространен поради простотата си. Има много програмисти, което води до по-евтино платен персонал във фирмите, по-ниска цена на приложенията за клиентите и още по-голяма използваемост. Поддръжката за PHP разработчици е гарантирана от множеството форуми и приложения на общността.
По аналогия с Perl към стандартните класове на PHP могат да бъдат писани и много допълнителни модули.
PHP поддържа следните системи за управление на бази от данни:
IBM DB2 – formix – Ingres, Microsoft SQL Server (MS SQL), mSQL,MySQL,Oracle,PostgreSQL, Sybase.
В по-старите версии на езика по подразбиране съществува функционалност, чрез която крайните потребители могат да подават направо променливи към PHP скрипта (register_globals). Настройката по подразбиране е премахната от версия 4.2.0, но съществуват все още много стари приложения, които предполагат употребата на тази функция.
PHP не поддържа напълноUnicode. Пълната поддръжка се предвиждаше в PHP 6, но не беше осъществена и се премина към версия PHP 7.
PHP не поддържа именни пространства до версия 5.3 на езика – т.е. всички функции се намират в едно именно пространство.
Съществуват много функции на библиотеки с идентична функционалност.
Няма изградена конвенция за именуване и подреждане на аргументите на вградените функции в PHP, което прави необходимо постоянно консултиране с документация при работа с PHP.
PHP няма вградена поддръжка на нишки (threads), което прави обработката на големи масиви от данни много трудна: страницата не се зарежда, преди целият масив от данни да е преработен, и ако потребителят прекъсне зареждането ѝ (и уеб сървърът разрешава прекъсване на заявката), прекъсва и обработката на данните.
Обръщенията към неинициализирани променливи и елементи на масив са разрешени в PHP, което прави възможно допускането на трудни за откриване правописни грешки.
PHP използва т. нар. „magic quotes“, които са създадени с цел да предпазват начинаещите програмисти, но объркват по-напредналите.
Понякога се среща несъвместимост между поведението на PHP в различните версии, което предизвиква необходимостта от пренаписване на скриптовете, писани за стари версии на езика.
PHP поддържа връзки към следнитеСУБД (Системи за управление на бази от данни) – MySQL, PostgreSQL, SQLite ja Oracle. Освен това чрезODBC съществува и общ интерфейс със следните СУБД – Adabas D, IBM DB2, iODBC, Solid и Sybase SQL Anywhere.
↑абРазмус Лердорф започва през 1994 г. асемблиране на C код, оригинално написан за CGI скриптове в библиотека и с достъп до функциите на библиотеката, включително SQL запитвания, чрез команди включени в HTML;Rasmus, Lerdorf.PHP на Hormones – история на PHP, представена от Размус Лердорф на MySQL конференция в Санта Клара, Калифорния (на английски, mp3) // The Conversations Network, 26 април 2007. Посетен на 11 декември 2009. Всеки ден променях драстично езика и не след дълго – през 1995, към средата на 1995 или някъде там PHP изглеждаше катотова. Което всъщност не е далеч от днешния вид на PHP.