На PHP език и употреби. Първи език за програмиране

PHP (Препроцесор за хипертекст) е един от най-популярните инструменти за уеб програмиране от страна на сървъра. Работата на PHP в най-простата му форма се свежда до обработка на http заявката на клиента. Обработката на заявката от своя страна се състои в програмно генериране на хипертекст в съответствие с параметрите на заявката, след което получената маркировка се връща на клиента. Когато клиент (интернет браузър) поиска обикновена статична интернет страница (най-често с html разширение), сървърът връща съдържанието на тази страница като отговор без промени „както е“. Ако се поиска PHP страница, тогава по време на обработката на заявката съдържанието на посочената страница първо се обработва от PHP интерпретатора и едва след това резултатът от тази обработка се изпраща на клиента.

С други думи, PHP е препроцесор за хипертекст, както е отразено в името му. Предпроцесор, тъй като хипертекстът претърпява последна обработка от страна на клиента, резултатът от която виждаме в прозореца на браузъра (самият браузър е хипертекст процесор). Можем да кажем, че PHP е генератор на хипертекст, тъй като в повечето случаи неговата работа е програмно генериране от съдържанието на база данни или от друга структурирана информация, хоствана на сървъра. Съкращението изглежда като PHP, а не като, например, HPP или друго, тъй като първоначално означаваше Инструменти за лична начална страница– инструменти за създаване на лични интернет страници. По този начин първата версия на декриптирането на PHP отразява неговата цел, а настоящата отразява принципа на работа.

PHP е език за програмиране, който поддържа почти всичко: променливи, условни оператори, цикли, функции и т.н. PHP е обектно-ориентиран език за програмиране– поддържа , както и конвенционално наследяване на ниво клас. PHP е език за уеб програмиране, тъй като е създаден предимно за разработване на динамични интернет сайтове и следователно съдържа голям брой готови решения, използвани в тази област, като например:

  • обработка и извличане на параметри http заявки GET и POST;
  • формиране и изпращане http заглавки;
  • инфраструктура за съхранение данни за сесията;
  • софтуерни услуги за работа с бисквитки;

    бисквитки- текстови данни, записани от браузъра на компютъра на клиента, които най-често съдържат параметри за достъп (вход и парола) или лични настройки на потребителя. Бисквитките се генерират от браузъра и автоматично се изпращат до сървъра в заглавките на HTTP заявката по време на всеки отдалечен достъп.


  • работа с файлове FTP протокол;
  • работа с бази данни с помощта на ;
  • поддържа
  • поддържа HTTP авторизация;
  • изпращане на съобщения по имейл и много други.

В този раздел планирам да прегледам накратко ключовите моменти от използването на PHP за създаване на прости уеб приложения. Материалите ще бъдат организирани в няколко секции, всяка от които ще съдържа примери със своя изходен код. За независими експерименти ви е необходим всеки друг сайт, до който имате пълен достъп и на сървъра на който е инсталиран PHP.

Основи на програмирането на PHP

Добавяне на PHP код към маркиране и резултат от препроцесора на хипертекста

PHP кодът се добавя директно навсякъде в HTML маркирането. Самото HTML маркиране може изобщо да не съществува и изходният код на страницата може да бъде представен само от фрагмент от PHP програма. Във всеки случай, за да вмъкнете PHP, трябва да използвате специален таг и да поставите програмния текст вътре в него. Това се прави по следния начин:

програмен код ?>

По време на работата на секцията за интерпретатор на PHPсе заменят с маркировка, генерирана в резултат на работата на намиращия се в тях програмен код. За извеждане на резултата от препроцесора се използва операторът ехо, чиито аргументи могат да бъдат константи, променливи, функции или различни видове изрази, а резултатът е текст. Най-простият вариант може да изглежда така:

"; ?>

Ако отворите изходния код на получената страница в браузър, там вече няма да има PHP (освен ако, разбира се, на сървъра не е инсталиран PHP интерпретатор). Няма много смисъл да използвате оператора echo по този начин. Красотата на PHP е, че генерираният HTML може да зависи от параметрите на заявката, съдържанието на базата данни, политиките за сигурност и много други. Анализът и обработката на всичко това се извършва с помощта на познати на почти всеки, като цикли, условия, функции и т.н. Гледайки напред, ще дам малък пример за PHP програма, използваща цикъл и условен оператор, така че първоначалното разбиране на хипертекстовия препроцесор да стане по-пълно. Следващата програма отпечатва факторните стойности на числата от 1 до 9.

Примерна програма на PHP Това маркиране се генерира програмно от PHP интерпретатора."; $f=1; за ($i=1; $i<10; $i++) { if ($i>1) $f=$f*$i; ехо $i,"!=",$f,"
"; } ?>


Резултатът от работата му ще изглежда така в браузъра:

1!=1 2!=2 3!=6 4!=24 5!=120 6!=720 7!=5040 8!=40320 9!=362880

Организиране на приложение от множество PHP файлове

Кратък условен или троичен оператор

По-долу е даден общ изглед на оператор за условно присвояване, използващ троичния оператор:
$резултат = условие? израз, ако е верен: израз, ако е невярно;

Пример:
$резултат = ($a>5)? $a+$b: $a-$b;

Ако a е по-голямо от 5, тогава на резултатната променлива се присвоява стойност a+b, в противен случай a-b.

Алтернатива на оператора if с повече конструкции elseif. Изпълнението на изрази започва със секцията case, чиято стойност съответства на стойността на израза, и продължава през всички следващи случаи, докато се срещне командата break - пълно изпълнение. Разделът по подразбиране е алтернатива на раздела else в условен оператор.

превключвател ( изразяване) (случай стойност 1: оператор 1; случай стойност 2: оператор 2; случай стойност 3: оператор 3; по подразбиране: оператор по подразбиране; ) направи тяло на примка; докато ( състояние);

Същият пример:

$i=2; $f=1; do ( $f=$f*$i; $i++; echo $i,"!=",$f,"
"; ) докато ($i<10);

Повече подробности за do...while цикълПрочети .

Преминаване през елементи в масив или оператора foreach

Няколко думи ще бъдат казани отделно за масивите, а по-долу е дадена конструкция за итериране на неговите елементи в цикъл:

За всеки ( масивкато $ елемент) израз, където правим нещо с променливата $element;

$values ​​​​= array("for", "while", "do", "foreach"); echo "Цикли в php:","
"; foreach ($values ​​​​като $operator) echo $operator, "
";

Циклите и операторът за избор в PHP, както и в много други езици за програмиране, поддържат инструкции прекъсвам– ранно завършване на цикъла и продължи– ранно завършване на текущата итерация на цикъла (преход към началото на цикъла). Прочетете повече за тях.

Общи понятия

Езикът PHP е специално създаден за уеб програмиране. PHP съчетава предимствата на C и Perl и е много лесен за научаване и има значителни предимства пред традиционните езици за програмиране.

Синтаксисът на PHP е много подобен на синтаксиса на езика C и до голяма степен е заимстван от езици като Java и Perl.

Програмистът на C много бързо ще овладее езика PHP и ще може да го използва с максимална ефективност.
По принцип PHP има почти всички оператори и функции, налични в стандартния GNU C (или техните аналози), например има цикли (while, for), оператори за избор (if, switch), функции за работа с файловата система и процеси (fopen, *dir, stat, unlink, popen, exec), I/O функции (fgets, fputs, printf) и много други...

Целта на този раздел е да представи накратко основния синтаксис на езика PHP. Ще намерите по-подробна информация за конкретни компоненти на PHP синтаксиса в съответните раздели.

PHP и HTML

Синтаксисът на всеки език за програмиране е много по-лесен за „усещане“ с помощта на примери, отколкото с помощта на някакъв вид диаграми и диаграми. Ето защо, ето пример за прост скрипт в PHP:



Пример

ехо „Здравейте, аз съм PHP скрипт!“;
?>




Вероятно вече сте забелязали, че това е класически скрипт, с който да започнете да изучавате език за програмиране.

Моля, обърнете внимание, че HTML кодът се анализира правилно от PHP интерпретатора.

Началото на сценария може да ви озадачи: това сценарий ли е? Откъде идват HTML таговете? И ? Тук се крие основната характеристика (между другото, изключително удобна) на езика PHP: PHP скриптът може изобщо да не се различава от обикновения HTML документ.

Продължавай. Вероятно се досещате, че самият код на скрипта започва след отварящия таг и завършва със затваряне ?> . Така че между тези два тага текстът се интерпретира като програма и не завършва в HTML документа. Ако програмата трябва да изведе нещо, тя трябва да използва оператора echo.

И така, PHP е проектиран така, че всеки текст, който се намира извън програмните блокове, е ограничен И ?> , се извежда директно в браузъра. Това е основната характеристика на PHP, за разлика от Perl и C, където изходът се извършва с помощта на стандартни оператори.

Разделяне на инструкциите

Инструкциите са разделени по същия начин както в C или Perl - всеки израз завършва с точка и запетая.

Затварящият таг (?>) също предполага края на израза, така че следните два кодови фрагмента са еквивалентни:

echo "Това е тест" ;
?>

Коментари в PHP скриптове

Писането на почти всеки скрипт не е пълно без коментари.

PHP поддържа C, C++ и Unix shell коментари. Например:

echo "Това е тест" ; // Това е едноредов коментар в стил C++
/* Това е многоредов коментар
още един коментар */
ехо "Това е още един тест";
echo "Последен тест" ; # Това е коментар в стила на обвивката на Unix
?>

Едноредовите коментари отиват само до края на реда или текущия блок от PHP код, в зависимост от това кое е преди тях.

Това пример.


Заглавието в горната част ще гласи „Това е пример“.

Внимавайте да избягвате вложени коментари "C", тъй като те могат да се появят, когато коментирате големи блокове:

/*
echo "Това е тест"; /* Този коментар ще създаде проблем */
*/
?>

Едноредовите коментари отиват само до края на реда или текущия блок от PHP код, което е преди тях. Това означава, че HTML кодът след // ?> ЩЕ бъде отпечатан: ?> излиза от PHP режим и се връща в HTML режим, но // не позволява това да се случи.

Променливи в PHP

Имената на променливите са обозначени с $ . Същото „Здравей, аз съм PHP скрипт!“ може да се получи така:

$съобщение= „Здравейте, аз съм PHP скрипт!“;
echo $message;
?>

Типове данни в PHP

PHP поддържа осем прости типа данни:

Четири скаларни типа:

Булеви (двоични данни)
- цяло число (цели числа)
- float (числа с плаваща запетая или "double")
- низ (струни)

Два смесени вида:

Масив
- обект (обекти)

И два специални вида:

ресурс
NULL ("празен")

Има и няколко псевдотипа:

Смесени
- брой (числа)
- обратно повикване

Научете повече за типовете данни в PHP

Изрази в PHP

Основните форми на изрази са константи и променливи. Например, ако напишете "$a = 100", присвоявате "100" на променливата $a:

В горния пример $a е променлива, = е оператор за присвояване, а 100 е израз. Стойността му е 100.

Изразът може също да бъде променлива, ако има конкретна стойност, свързана с него:

$x = 7;
$y = $x;

В първия ред на разглеждания пример изразът е константата 7, а във втория ред - променливата $x, т.к. преди това беше зададено на 7. $y = $x също е израз.

Можете да научите повече за изразите в PHP

PHP оператори

Операторът е нещо, състоящо се от една или повече стойности (изрази в програмния жаргон), които могат да бъдат оценени като нова стойност (по този начин цялата конструкция може да се счита за израз).

Примери за PHP изрази:

Оператори за присвояване:

$a = ($b = 4) + 5; // резултат: $a е зададено на 9, на променлива $b е присвоено 4.

?>

Комбинирани оператори:

$a = 3;
$a += 5; // задава $a на 8, подобно на писане: $a = $a + 5;
$b = "Здравей" ;
$b .= "Ето!" ; // задава $b на низа "Hello There!", точно както $b = $b. "Там!";

?>

Оператори за низове:

$a = "Здравей" ;
$b = $a. "Свят!" ; // $b съдържа низа "Hello World!"

$a = "Здравей" ;
$a .= "Свят!" ; // $a съдържа низа "Hello World!"
?>

Има също така логически оператори и оператори за сравнение, но те обикновено се разглеждат в контекста на езиковите контролни конструкции.

Можете да намерите подробна информация за PHP операторите.

Контролни конструкции на езика PHP

Основните конструкции на езика PHP са:

  1. Условни изрази (if, else);
  2. Цикли (while, do-while, for, foreach, break, continue);
  3. Конструкции за избор (превключвател);
  4. Декларационни конструкции (declare);
  5. Конструкции за връщане;
  6. Конструкции за включване (изискват, включват).

Примери за PHP езикови конструкции:

ако ($a > $b) ехо "стойността на a е по-голяма от b";
?>

Горният пример ясно показва използването на дизайна акозаедно с оператора за сравнение ($a > $b).

В следващия пример, ако променливата $aне е равно на нула, ще бъде отпечатан редът „стойността на a е вярна“, т.е. показано е взаимодействието на условния оператор (конструкция) ако с логическия оператор:

if ($a) ехо "стойността на a е вярна";
?>

Ето пример за цикъл while:

$x = 0;
докато ($x++< 10 ) echo $ x ;
// Отпечатва 12345678910
?>

Можете да получите информация за всички PHP контролни конструкции

Персонализирани функции в PHP

Всеки език за програмиране има подпрограми. В С те се наричат ​​функции, в асемблерния език се наричат ​​подпрограми, а в Паскал има два вида подпрограми: процедури и функции.

В PHP има такива подпрограми.

Подпрограмата е специално проектиран фрагмент от програма, който може да бъде достъпен от всяко място в програмата. Подпрограмите правят живота много по-лесен за програмистите, като подобряват четливостта на изходния код и го правят по-кратък, тъй като отделните кодови фрагменти не трябва да се пишат многократно.

Ето пример за персонализирана функция в PHP:

функция функция() (
$a = 100;
ехо "

$a

" ;
}
функция();

?>

Скриптът извежда 100:

Потребителски функциите в PHP могат да бъдат предавани на аргументи и да получават върнати стойности от функциите.

Можете да намерите подробна информация за персонализирани функции на PHP

Вградени (стандартни) PHP функции

PHP съдържа огромен брой вградени функции, които могат да изпълняват задачи с различни нива на сложност.

ООП и PHP

PHP има доста добра поддръжка за обектно-ориентирано програмиране (OOP).

В PHP можете да създавате класове от различни нива, обекти и да работите с тях доста гъвкаво.

Ето пример за PHP клас и неговото използване:

// Създаване на нов Coor клас:
клас Coor (
// данни (свойства):
var$name;

// методи:
функция Getname() (
ехо "

Джон

" ;
}

}

// Създаване на обект от класа Coor:
$обект = newCoor;
// Получете достъп до членовете на класа:
$object -> name = "Alex" ;
ехо $обект -> име;
// Отпечатва "Алекс"

Ако имате други въпроси или нещо не е ясно - заповядайте при нас

Този сайт вече има статии за и дадени. Сега ще поговорим за това какво е PHP.

Какво е PHP и какво можете да правите с него?

Това лесно за следване въведение в езика PHP обяснява основите на PHP и как можете да го направите използвайте за създаване на богати уеб страници и приложения. PHP е език за програмиране, който може да се използва за писане на уеб приложения. Уеб приложението може да бъде всичко - от обикновен формуляр „свържете се с нас“ до пълноценна система за блогове, онлайн магазин или форум. Повече ▼ .

PHP - сървърен език

PHP е известен като сървърен език за програмиране. Означава, че работи на уеб сървър. Повечето езици за уеб програмиране са сървърни езици, но някои, като JavaScript, са клиентски, което означава, че работят в уеб браузъра.

Езиците от страна на сървъра ви дават повече гъвкавост, защото можете да правите неща, които са трудни за правене с JavaScript - като работа с файлове, бази данни или работа с изображения. Трябва да се каже, че JavaScript се разпространи много бързо в наши дни.

Изпълнението на код от страна на сървъра е по-безопасен начин, отколкото от страна на клиента, както прави JavaScript. Тъй като JavaScript кодът се изпраща до уеб браузъра, посетителите на сайта могат лесно да го преглеждат и редактират. Дори на една страница от сайта можете лесно. Кодът от страната на сървъра остава на уеб сървъра и не е достъпен за посетителите на сайта. PHP е инструмент, който се намира на уеб сървър и изпълнява PHP скриптове там.

PHP е софтуер с отворен код

PHP е софтуер с отворен код. Това означава, че всеки потребител може да има достъп и да работи с PHP. Това помага да се гарантира, че PHP ще работи дълго време. PHP е безплатен за изтегляне и използване. Това е причината много хостинг доставчици да използват широко PHP. Ще откриете, че по-голямата част от уеб хостовете поддържат PHP.

PHP е фокусиран върху разработката на уеб приложения

Докато много езици за програмиране могат да се използват за създаване на уеб приложения, PHP е един от езиците, специално предназначени за използване в Интернет. PHP има много полезни уеб функции като:

  • Четене и обработка на уеб формуляри и бисквитки
  • Функции за създаване и работа с графики
  • Установяване на връзки с популярни бази данни като
  • Функции за работа с.

Можете да смесвате PHP код с HTML код

Една от страхотните характеристики на PHP е, че можете да включвате блокове от PHP код в HTML страници.

Можете да разделяте PHP блокове с помощта на специални знаци. Когато уеб сървърът получи информация за страницата,
всички PHP блокове се изпълняват от PHP двигателя, докато други части от страницата се изпращат „както е“ на браузъра.

Тази функция улеснява превръщането на обикновени уеб страници в интерактивни. Страхотен инструмент за контактни форми и форми с подобна функционалност.

Използване на PHP

Можете да използвате PHP за писане на почти всеки тип уеб приложение или скрипт. Често срещаните PHP приложения включват:

След като прочетете статията, можете да консолидирате знанията си, като попълните кратък урок, който се основава на материала в тази статия. Успех в овладяването на езика PHP!

Езикът 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 framework или дори вездесъщия C#. Ако все пак изберете последната опция, бъдете готови да имате много повече автобиографии за преглед и пресяване, за да изградите страхотен екип;
  • Можете да направите някои впечатляващи неща със Scala;
  • Node.js. Просто трябва да спомена Node.js. Лично аз смятам, че Javascript е на върха на веригата в момента, но Node също е в списъка с доста широко използвани езици от дълго време. Освен това има голям брой висококвалифицирани специалисти.

© Андрей Кухарчик
Компютърен вестник

Въведение

Интернет отдавна е твърдо установен в живота ни. Това смело твърдение може да бъде доказано или опровергано много пъти, но по един или друг начин всичко се променя и никой няма да спори с това.

Отминаха дните, когато много потребители на персонални компютри, за да спестят място на диска, премахнаха програмата Internet Explorer от нашата любима операционна система, защото просто не им трябваше. Сега дори тези, които нямат достъп до мрежата, се опитват да не докосват тази програма, тъй като интернет форматите отдавна са се преместили в други области на нашия компютърен живот. И ако модемът се е установил в компютъра, просто е невъзможно да се избегне присъствието на браузър, тъй като наистина искате да видите поне с едно око какво има там, отвъд телефонната линия? И след като запознанството се случи, вече не е толкова лесно да се откажете от предимствата на мрежата. След известно време започвате да осъзнавате, че трябва по някакъв начин да инвестирате себе си и идеите си и да се проявите в необятните пространства на Глобалната мрежа. Дори стана престижно да създадете своя собствена страница и дори ако в нея има малко полезно и броячът отчита само редките ви посещения, това, което правите, може да се превърне в началото на сериозен проект и да промени целия ви живот.

Пътувайки из необятните простори на глобалния интернет, вие, разбира се, често сте обръщали внимание на хипервръзките, които понякога достигат външно много големи размери и просто водят до объркване от наличието на странни символи. И разбира се, всички обърнаха внимание на формулярите, които трябваше да попълнят и да получат нещо в замяна. Но малко хора се замислят как работи всичко това и какво означава всичко това.

Каня ви да се потопите в света на програмирането. Този свят в много отношения не прилича на нищо друго, но има свои собствени неписани закони и правила, своите плюсове и минуси. Светът, който се разкрива пред нас, е видим само за още една стъпка, но тази стъпка трябва да бъде усвоена и тогава ще бъде много по-лесно да отидем по-нататък.

История на RNR

Винаги трябва да започвате с най-простото, а сега ще се опитам да ви запозная с програмирането на PHP скриптовия език. RHP (произнася се PHP) е роден през есента на 1994 г. и неговият създател, Расмус Лердорф, използва езика за свои собствени цели, за да има представа за хората, които посещават неговия сайт и се запознават с неговия продължи.

Според автора PNR е написан буквално за един ден между бизнес срещите. Първоначално това беше просто невзрачна CGI обвивка, написана на Perl, и служеше изключително за конкретни цели. За справка - CGI (Common Gateway Interface) - общ интерфейс на шлюза, е стандарт, който е предназначен за създаване на HTTP сървърни приложения.

Това приложение, наречено шлюз или CGI програма, се изпълнява от сървъра в реално време. Сървърът предава заявките на потребителя към CGI програма, която ги обработва и връща резултата от работата си на екрана на потребителя.

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

В резултат на по-нататъшна експлоатация се оказа, че черупката има ниска производителност и авторът беше принуден да пренапише всичко отново, но на езика C, което направи възможно увеличаването на скоростта на PHP. Потребителите на сървъра, където се намираше сайтът с първата версия на PHP, поискаха същия инструмент и въпреки че авторът не си представяше, че някой друг ще използва този език, доста бързо PHP прерасна в независим проект и в началото на 1995 г. е пусната първата известна на нас продуктова версия. Името на този първи пакет беше Personal Home Page Tools. По това време RNR имаше повече от скромни възможности. Имаше прост анализатор на код, който разбираше няколко специални команди, както и различни помощни програми за използване на началната страница, необходими за изграждане на такива полезни неща като книга за гости, брояч, чат, системи за статистика и други подобни. До средата на 1995 г. езикът беше напълно преработен, появи се обработка на формуляри, бяха добавени функции за работа с бази данни и втората версия на продукта беше пусната в тази форма.

Днес PHP е мощен междуплатформен набор от инструменти, който се намира на сървър и е предназначен да обработва специален код, вграден в HTML страница. Благодарение на това става възможно лесното създаване на динамични уебсайтове. Създадените по този начин файлове се съхраняват и обработват на сървъра и когато посетител поиска документ с PHP, скриптът не се обработва от браузъра на посетителя, като Java Script, а от сървъра и само резултатите от работата се прехвърлят на посетителя. CGI програма, написана на C или Perl, работи по абсолютно същия начин. Но за разлика от CGI, PHP кодът може да бъде вграден навсякъде в HTML страница, което е основното предимство пред CGI. И освен това, самият език PHP е много лесен за научаване и не изисква никакви специфични познания. Например, на мен лично ми беше достатъчен опитът, който придобих преди десет години в часовете по информатика в училище, където изучавахме езика BASIC на много модерни и скъпи Ямахи по това време. Въпреки тази розова характеристика, PHP има и недостатъци. Заслужава да се отбележи доста бавната (в сравнение с CGI програмите) работа на PHP скриптовете, както и трудността при писане на големи и сложни програми. По един или друг начин PHP остава интерпретиран език, което със сигурност води до влошаване на производителността в случай на много големи и сложни програми, но за извършване на прости манипулации на сайта PHP е най-добрият избор. Не е чудно, че до средата на 2000 г. PHP се използва в повече от 2,5 милиона сайта!

Характеристики на PHP

Както всеки език за програмиране, PHP има свой собствен синтаксис. Той е много подобен на синтаксиса на C или Perl. Програмистите, които пишат на тези езици, ще могат да овладеят PHP само за няколко дни. Но дори и никога да не сте програмирали, PHP е лесен за използване и осигурява основа за преминаване към по-напреднали езици. Всички команди са доста логични и правилата са прости. Синтаксисът включва изрази, разделени с точка и запетая. Една от основните грешки на начинаещите програмисти е липсата на точка и запетая между изразите. За щастие грешките в PHP се показват на екрана по подразбиране (за разлика от CGI, където всички грешки се записват в лог файл) и намирането им с известно внимание и опит не е трудно. Освен това интелигентен преводач ще ви каже номера на реда, където е възникнала грешката.

За да програмирате в PHP, ще ви е необходим текстов редактор, но за удобство той трябва да осигурява подчертаване на синтаксиса и номериране на редове. Използвам CuteHTML, който е включен в най-новите версии на добрия FTP мениджър CuteFTP. Редакторът е много удобен, без излишни ненужни функции, вграден е в контекстното меню, не изисква инсталация и има всичко необходимо за програмиране. Трябва ни и комплект за работа с PHP. Обикновено се използва Apache+PHP, въпреки че това не е задължително; всеки сървър, като IIS на Microsoft, ще свърши работа. Но първата опция е безплатна и има голяма поддръжка с документация (включително на руски) и форуми, където можете да намерите всеки въпрос.

А сега да се заемем с работата - да напишем първия си скрипт. За да може сървърът да знае кой файл съдържа PHP кода, неговото разширение (на файла) трябва да бъде направено или phtml, или php3, или php. Строго погледнато, всяко разширение може да бъде присвоено, но препоръчвам винаги да използвате phtml от съображения за съвместимост. Всяка команда в PHP обикновено започва с "" (по-нататък без кавички). Както си спомняте, няколко команди са разделени с точка и запетая. Можете да поставите коментар навсякъде в PHP скрипта, той започва с "/*" и завършва с "*/" Ако коментарът е малък и заема само един ред, можете да поставите "//" и по този начин лесно да коментирате всеки ред до края. Както обикновено, интервалите, разделите и новите редове просто се игнорират и могат да се използват за подобряване на четливостта на PHP кода.

Дисплей и променливи в PHP

PHP прави много лесно организирането на текстов изход на екрана. Нека да разгледаме примерен скрипт:

Този скрипт може да се намира навсякъде в HTML документа и сам по себе си не предоставя нищо полезно, тъй като показва само фразата „Здравей, свят!“ на екрана. Но по този начин се запознаваме с една от най-разпространените PHP команди - показване на информация на екрана на потребителя. За да дадем на нашия скрипт някаква полезна функционалност, нека да разгледаме променливите. Променливата се характеризира с име, тип и стойност. Името може да бъде каквото и да е и да включва цифри, букви от английската азбука и разрешени знаци (например долна черта или тире). По вид променливите се делят на цели, с плаваща запетая и символи. Стойността според типа може да бъде почти всяка. Например променлива a=5. Това ни казва, че името на променливата е a, типът е цяло число и стойността е 5. Ето още примери за имена и стойности:

Както можете да видите, всички променливи в PHP (но не само в него) трябва да започват със символа $, което позволява на интерпретатора точно да ги разграничи от PHP командите. Първият ред на нашия скрипт присвоява стойност 6 на променливата $name и тази променлива автоматично става цяло число. Между другото, не е необходимо да се описва предварително типа на променливата, както в Pascal или Visual Basic, но въпреки че разделянето на типове е чисто условно, всяка променлива автоматично се стреми да използва правилния тип според стойността. Вторият ред от код задава променлива $h12 на 4.89, което е стойност с плаваща запетая. Третият и четвъртият ред на кода присвояват стойности на своите променливи, които са символни низове. Всичко, затворено в кавички (включително числа), ще се интерпретира като символен низ. Ако променливите не са предварително дефинирани, но се използват, тяхната стойност се приема или нула, или празен низ в зависимост от типа.

Както във всеки език, можете да извършвате всякакви аритметични операции с променливи и това не изисква наличието на специален оператор, достатъчно е да посочите променливата за резултата, знака за равенство и да изброите променливите или стойностите с необходимите аритметични знаци в естествен ред. Пример:

Резултатът от скрипта е показването на числото 4. Поддържат се всички аритметични операции и функции, многостепенни скоби, логически операции, операции за увеличаване или намаляване с единица и много други. Освен това сравнението на ако - тогава - иначе е много просто и естествено. За да направи това, PHP използва конструкцията if () ( ) else ( ). Има различни опции за синтаксис за този оператор, но тази е основната и най-логичната от всички. (ако) ако (условие) (тогава) (това, което е в кавички, се изпълнява) (иначе) else (това, което е в кавички, се изпълнява). Не е необходимо да поставяте точка и запетая след кавичките, както обикновено между операторите. Но вътре в кавички операторите са разделени един от друг само чрез точка и запетая. Разрешено е влагането на няколко оператора за проверка един в един. В този случай трябва да сте много внимателни относно броя на затварящите кавички, тъй като ако дори една липсва, интерпретаторът ще изведе грешка в кода. Нека да разгледаме един прост пример:

Когато се сравнява с вярно, се използват два знака за равенство, така че интерпретаторът да може лесно да различи сравнение от присвояване. Резултатът от скрипта е 95, защото $a не е равно на $b и командата echo $b.$a; (между променливите има точка, а не знак за аритметично действие) показва посочените променливи в ред. Неравенството (невярно) се обозначава със символите !=, всички други аритметични и логически символи и оператори са валидни (например или, и, >,<= и т.д.).

PHP има средства за бърза промяна на променлива с една нагоре или надолу. За да направите това, трябва да посочите името на променливата, последвано от два плюса или минуса, съответно без знак за равенство. Например $a++; - променлива $a ще бъде увеличена с единица. Поддържа се едновременно присвояване на една стойност на няколко променливи - $a = $b = 4;. И двете променливи ще бъдат равни на четири. Ето още няколко примера за нестандартни аритметични операции в PHP:

Прикачени файлове в PHP

Всеки, който е създал поне една страница в Интернет, се е сблъсквал с проблема с промяната на определени данни в нея. Разбира се, това не е трудно, когато страниците са няколко или само една :-), но ако сте направили голям сайт, едно малко допълнение (например към меню) със стотици файлове може да се превърне в истински кошмар! PHP решава този проблем с едно движение, позволявайки ви да вложите една страница в друга. Това се постига с помощта на операторите REQUIRE и INCLUDE. Тези твърдения трябва да бъдат последвани от пътя към прикачения файл в скоби. Например INCLUDE("text.phtml"). Разликата между тези оператори е, че REQUIRE замества съдържанието на посочения файл и може да се използва само веднъж, докато INCLUDE вмъква и изпълнява съдържанието на посочения файл, което позволява той да бъде използван няколко пъти, например в цикъл. Във всеки случай, когато се изпълнява файл, PHP интерпретаторът (правилно наричан парсер) е в състояние HTML и за да го включи, кодът трябва да бъде затворен в конструкция. Прикачените файлове могат да се появяват само в пространството на сървъра, достъпно от PHP. С други думи, не можете да използвате http:// в името на файла.

Доста често има сайтове, чиито връзки включват специални символи - &,?, %. Всичко това може да е резултат от работата на RNR. Въпросът е, че ако добавите ?name=value в края на връзката, тази стойност ще бъде достъпна под същото име във файла, към който сочи връзката. Ако трябва да се добавят няколко имена, те могат да бъдат разделени с &. Сега можем да направим уебсайт, който ще бъде достъпен само с една страница. И тази страница ще показва цялата друга информация въз основа на данните, получени чрез връзката. Появата на такава връзка ще бъде нещо подобно: http://name.ru/index.phtml?link=1. Единицата в края на връзката е нашият параметър, който ще бъде заменен във файла index.phtml. Например така:

...началото на файла......край на файла...

Моля, обърнете внимание, че кодът, който написахме, взема предвид ситуацията, когато посетител по различни причини посочи неправилен параметър. В този случай се показва подготвена страница със съобщение за грешка. Ако параметърът съответства на някой от файловете на сайта, той се вмъква в кода на файла index.phtml и се изпълнява. Така началото и краят остават същите, но се променя само средата. И всички промени вече не изглеждат толкова страшни, колкото преди. В крайна сметка те трябва да се правят само в един файл, но това ще се отрази на целия сайт.

Има и друг начин. Същността му се състои в това, че PHP има достъп до така наречените променливи на сървърната среда. Една от тези променливи е пътят, поискан от посетителя спрямо адреса на сайта. И този път става достъпен за нас за използване. В този случай нашите връзки ще изглеждат така: http://name.ru/index.phtml?patch/name.phtml. Втората част от връзката - patch/name.phtml - ще бъде достъпна за нас, ако вземем предвид параметъра $QUERY_STRING. Например така: $add = $QUERY_STRING. Сега нека променим основния файл index.phtml, така че всичко да работи автоматично. И ако исканият параметър не е посочен (точно казано, той ще бъде равен на празен низ), за да отворим нещо, ще присвоим на променливата $add името на файла, който трябва да се отвори като главна страница. Нека това да е файлът main.phtml. Тогава кодът ще изглежда така:

...началото на файла......край на файла...

Както можете да видите, това е още по-просто. Но искам веднага да ви предупредя, че този метод, макар и по-прост от първия, отваря пътя за получаване на информация за сървъра, където се намира сайтът с такава структура. Нападател или просто любопитен човек, при определени обстоятелства и знания, ще може да разбере много за вашия сървър и това отваря директен път към хакване. Така че бъдете внимателни и не създавайте големи проблеми. Възможно е да се предпазите от подобни проблеми, но това е съвсем друга история.

Пример за брояч на посещения на PHP

Ако сте прочели всичко внимателно, лесно ще получите начален капитал от знания и това ще ви даде възможност да изучавате самостоятелно PHP езика в бъдеще. И накрая, предлагам ви да се запознаете с кода на скрипта, който ще ви позволи да организирате брояч на посещения на всяка страница от вашия сайт. Този брояч няма да бъде напълно функционален, тъй като има много недостатъци, но е доста подходящ като пример за използване на PHP. Във всяко място на вашата страница (но само там, където е необходимо), поставете следния код:

Посетители на страницата -

В същата директория като вашата страница, създайте файл counter.dat, качете го на сървъра и, като използвате вашия FTP мениджър, променете атрибутите на този файл, така че да може да се записва. Обикновено трябва да проверите всички файлови атрибути. Ако не направите това, скриптът постоянно ще извежда грешка при опит за запис във файла. Между другото, за да не се случи това, трябва да поставите символа @ пред командата за писане и отваряне на файл, той ще отмени показването на съобщение за грешка на екрана на посетителя. Когато атрибутите се променят, опреснете страницата си на сървъра и я отворете на нейния адрес в браузъра. Ще видите, че там, където сте вмъкнали PHP кода, се появява редът: „Посетители на страницата -“ и след това число, съответстващо на броя посещения. И без следа от код! Той беше обработен на сървър в Интернет и резултатът от това изпълнение просто беше предаден на браузъра.

Алгоритъмът на този скрипт е много прост. В първия ред присвояваме на избраната променлива името на файла, в който ще се съхранява броя на посещенията. Във втория отваряме връзка към този файл за четене. След това проверяваме успеха на връзката и ако файлът съществува и е четим, четем низ от 10 байта от него, което е повече от достатъчно за брояча, и затваряме връзката към файла. Увеличаваме показанието на брояча с единица и показваме новата му стойност на екрана. На следващия етап трябва да напишем нова стойност на брояча, като за целта отново отваряме връзката (дескриптора) с файла, но за запис и изчистване на съдържанието на файла. Ако е успешно, записваме там новата стойност на брояча и затваряме файловия дескриптор. Това е всичко.

С това приключи първото ни запознанство с езика PHP. Разбира се, има още много полезни и интересни неща, но, за съжаление, е невъзможно да се обхване всичко наведнъж. Но затова пък умните хора измислиха мрежата, за да направят недостъпното достъпно. В интернет има много полезни ресурси по темата за PHP и с минимални умения в търсачките можете лесно да ги намерите. И ви съветвам да се абонирате за PHP бюлетина за всички!, В който редовно се появяват нови статии, примерни скриптове веднъж седмично, има раздел за въпроси и отговори, както и много друга полезна информация. Можете да намерите формата за абонамент и да се абонирате на онлайн адреса.

Там са публикувани всички предишни броеве на бюлетина. А на адреса можете да видите как работи всичко в действие. Всичко, което виждате на този сайт, е направено от PHP. Чат, форум, частни обяви, система за статистика - това е само малка част от възможностите, които ни дава програмирането на езика PHP.



Дял