PHP: Разлика между версии

Изтрито е съдържание Добавено е съдържание
м Бот: Козметични промени
подобряване на стила и редактиране на грешки
Ред 1:
{{експерт}}
{{Програмен език
|име = PHP
Line 20 ⟶ 19:
}}
 
'''PHP''' е [[скриптов език]] върху сървърната (обслужваща) страна. Той е език с [[отворен код]], който е проектиран за [[уеб програмиране]] и е широко използван за създаване на сървърни приложения и [[динамичнаДинамична уеб страницауебстраница|динамично уеб- съдържание]]. Автор на езика е канадецът от датски произход [[Размус Лердорф]]. PHP е [[рекурсивен акроним]] от PHP: Hypertext Preprocessor (като в самото начало има значение, дадено от създателите му, на Personal Home Page). Пример за PHP приложение е [[МедияУики]] – софтуерът, използван от [[Уикипедия]].
 
== Преглед ==
PHP е [[скриптов език]] със синтаксис, базиран на [[C (език за програмиране)|C]] и [[Perl]]. Използва се предимно в Web-интернет среда за реализиранеизпълнение на широк кръг от услуги. Тойи е един от най-популярните езици за програмиране в Интернет и популярността му расте непрекъснатоинтернет.
 
PHP се разпространява под отворен лиценз (PHP License), който по своята същност е [[BSD лиценз]]а и който позволява безплатно разпространяване на програмния код на интерпретатора на езика, както и създаването на производни интерпретатори под други лицензи с уговорката, че тези интерпретатори не могат да включват PHP в името си. Фактът, че PHP се разпространява свободно, го прави удачен избор за изграждане на [[уеб сървър|Web-сървър]], базиран изцяло на свободни продукти – [[GNU]]/[[Linux]], [[Apache]], [[MySQL]]/[[PostgreSQL]] и др.
 
При поискване, кодът, който е написан на PHP, се интерпретира от [[уеб сървър]]асървъра, на който е качен, и резултатът се връща на [[уеб браузър]]a. Потребителят не може да види чистия PHP код, без да има достъп до самия файл, в който той е записан. По този начин есе помисленоосигурява за сигурносттазащитата. PHP файловете могат да съдържат текст, [[HTML]], [[CSS]], [[JavaScript]] и PHP код. PHP файловетеи имат разширение ''<code>*.php''</code>.
 
Самият език е преносим на много изчислителни архитектури и операционни системи като GNU/Linux, [[Unix|UNIX]], [[Mac OS XmacOS]], [[Windows]].
 
Съществуват множество модули (разширения) за PHP, които добавят различни функционалности и позволяват много по-бързо и ефективно разработване. Такива допълнителни функционалности към езика са:
 
* функции за обработка (създаване, редактиране ...) на изображения
* функции за работа с [[низ]]ове и [[Регулярен израз|регулярни изрази]]
* функции за работа с [[XML]] съдържание
Line 39 ⟶ 38:
* функции за [[дата]] и [[час]]
* математически функции
* функции за управление на сесии и работа с [[Бисквитка|бисквитки (cookies)]]
* функции за [[Компресиране на данни|компресия]] и [[шифриране]]/дешифриране
* функции за [[COM]] и [[.NET Framework|.NET]] за ([[Windows]])
Line 48 ⟶ 47:
* функции за изпращане на e-mail съобщения
* хранилище за разширения и приложения на PHP: [[PEAR]]
PHP може да работи с повечето модерни бази данни – [[MySQL]], [[PostgreSQL]], [[Microsoft SQL Server]], [[Oracle]], [[SQLite]] и д.рдр.
 
На официалния сайт на PHP се намира обширна библиотека с информация за езика и модулите му, която може да се използва както за основно запознаване с езика, така и като справочник по време на работата с него.
 
Поради отворения характер на езика съществуват множество потребителски групи в България и по света, посветени на програмирането с PHP, където всеки може да получи помощ в работата си с този език.
 
== История ==
Началото на PHP е поставено от [[Размус Лердорф]]<ref>{{Цитат уеб| уеб_адрес = http://itc.conversationsnetwork.org/shows/detail3298.html#| заглавие = PHP on Hormones| достъп_дата = 14 март 2011| дата = 26 април 2007| език = en}}</ref> през [[1994]] г., въпреки че самият Лердорф смята 1995 за рождената година на PHP, защото тогава „отваря“ кода на новия език за програмиране.<ref>{{Цитат уеб| уеб_адрес = http://groups.google.com/group/comp.infosystems.www.authoring.cgi/msg/cc7d43454d64d133?pli=1| заглавие = PHP/FI release announcement| достъп_дата = 14 март 2011| дата = 8 юни 1995| език = en}}</ref> В началото Размус създава [[Perl]] скриптове за следене на посещенията на резюмето на личната му страница, които впоследствие пренаписва и така се създава първата версия на '''PHP''' (тогава означаващо '''P'''ersonal '''H'''ome '''P'''age).
В началото Размус създава [[Perl]] скриптове за следене на посещенията на резюмето на личната му страница, които впоследствие пренаписва и така се създава първата версия на '''PHP''' (тогава означаващо '''P'''ersonal '''H'''ome '''P'''age).
 
През [[1997]] г. двамата израелски студенти на [[Technion]] (израелски технологичен институт) [[Зеев Сураски]] и [[Анди Гутманс]] пренаписват целия език, констатирайки множеството бъгове и отчасти неправилни концепции за строеж на програмен език и по-късно известяват Размус с техните предложения. Той ги приема и така се създава основният екип от разработчици (PHP Core team), който по-късно се превръща в групата на PHP (PHP group). Зеев Сураски и Анди Гутманс заедно с [[Размус Лердорф]] добавят нови функционалности и [[API]] за допълнителни модули към езика и така се създава '''PHP 3'''. Сураски и Гутманс пренаписват отново [[ядрото]] на езика и създават [[Zend engine]] през [[1999]] г. Пренаписването е направено основно от Сураски и Гутманс като курсов проект по време на тяхното обучение в Technion. Пренаписването е вследствие на факта, че кодът на PHP2PHP 2 е бил труден за поддръжка и доста нестабилен.
 
През [[2005]] бяхасе честваничестват 10 години PHP,от наредсъздаването сна PHP и 10 години от създаването на [[MySQL]].
 
През годините ядрото на PHP е претърпялопретърпява много промени, като най-забележимите са следните:
 
* 22 май 2000 г. – излиза версия 4 на PHP, основана на Zend Engine 1.0.
* Юли 2003 г. – версия 5 на PHP, основана на Zend Engine II.
* 2005 г. – УникодUnicode функционалност.
 
== Синтаксис и семантика ==
PHP действа главно като [[филтър]], който взема съдържанието на файл и изпълнява специални PHP инструкции, описани във файла. PHP скриптът има начален и краен таг, между които е разположено съдържанието. Отварящият таг е '''<code><?php'''</code>, а затварящиязатварящият е '''<code>?>'''</code>. Цялата инструкция трябва да завършва с '''<code>;'''</code>.<ref>[http://php.net www.php.net]</ref>.
 
Тук има пример за код, който визуализира „[[Hello, world|Здравей, свят]]“:
Line 77 ⟶ 75:
?>
</syntaxhighlight>
етоЕто и пример за свързване към база данни и изпълняване на проста заявка към нея:
<syntaxhighlight lang="PHP">
<?php
Line 91 ⟶ 89:
?>
</syntaxhighlight>
Обектно-ориентиран PHP:
<syntaxhighlight lang="PHP">
<?php
Line 113 ⟶ 111:
</syntaxhighlight>
 
PHP изпълнява кода в [[рамки]]терамките на своите граници – кода между '''<code><?php'''</code> и '''<code>?>'''</code>. В зависимост от настройките на [[сървър]]а, за отваряща граница може да се използва само '''<code><?'''</code>, но това не се препоръчва.<ref name="PHP escaping">{{cite web|accessdate=8 февруари 2010|url=http://www.php.net/manual/en/language.basic-syntax.phpmode.php|title=Граници на PHP кода|publisher=The PHP Group }}</ref>. При липса на допълнителна обработка, или прекъсване на зареждането на дадена страница всичко извън рамките се изпраща директно към изхода, без да бъде изпълнявано от PHP. Горният пример е еднакъв с долния текст (и наистина е конвертиран в този вид):
Здравей, свят!
Предимство на PHP е, че позволява командите му да бъдат влагани в [[HTML]] документите, като крайните потребители не могат да видят изходния код, написан на PHP, който преработва всичко извън рамките му:
<syntaxhighlight lang="PHP">
<?php
Line 137 ⟶ 135:
 
== Предимства на езика ==
* PHP работи на множество [[операционна система|операционни системи]] (Unix, GNU/Linux, Windows, BSD, Mac OS XmacOS) и множество [[уеб сървър]]и – [[Apache]], [[lighttpd]], [[IIS]].
* PHP е лесен за разработване.
* PHP е безплатен и се разпространява под лиценза на BSD.
Line 155 ⟶ 153:
* Съществуват много функции на библиотеки с идентична функционалност.
* Няма изградена конвенция за именуване и подреждане на аргументите на вградените функции в 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.
 
== PHP Framework ==
Взето от „https://bg.wikipedia.org/wiki/PHP“.