Այն տարին, երբ հայտնվեց php ծրագրավորման լեզուն։ PHP լեզուն կեղծիքների համար. արտաքին տեսքի պատմություն, հիմնական հատկանիշներ

Վերջին թարմացումը՝ 20.10.2017

Այսօր PHP-ն վեբ ծրագրավորման ամենատարածված լեզուն է: Ինտերնետում կայքերի և վեբ ծառայությունների ճնշող մեծամասնությունը գրված է PHP-ի միջոցով: Ըստ որոշ գնահատականների, PHP-ն օգտագործվում է կայքերի ավելի քան 80%-ում, ներառյալ այնպիսի ծառայություններ, ինչպիսիք են facebook.com, vk.com, baidu.com և այլն: Եվ նման ժողովրդականությունը զարմանալի չէ: Լեզվի պարզությունը թույլ է տալիս արագ և հեշտությամբ ստեղծել տարբեր բարդության կայքեր և պորտալներ:

PHP-ն ստեղծվել է 1994 թվականին դանիացի ծրագրավորող Ռասմուս Լերդորֆի կողմից և ի սկզբանե մեկ այլ լեզվով՝ Perl-ի սցենարների հավաքածու էր: Հետագայում սկրիպտների այս հավաքածուն վերագրանցվեց թարգմանչի մեջ C լեզվով։ Եվ իր ստեղծման օրվանից PHP-ն (PHP-ի հապավումը՝ Hypertext Preprocessor) եղել է հարմար գործիքների հավաքածու՝ հեշտացնելու կայքերի և վեբ հավելվածների ստեղծումը։

Ի՞նչ առավելություններ է տալիս PHP-ն:

    Բոլոր ամենատարածված օպերացիոն համակարգերը (Windows, MacOS, Linux) ունեն PHP մշակման փաթեթների իրենց տարբերակները, ինչը նշանակում է, որ դուք կարող եք կայքեր ստեղծել այս օպերացիոն համակարգերից որևէ մեկի վրա:

    PHP-ն կարող է աշխատել տարբեր վեբ սերվերների հետ՝ Apache, Nginx, IIS

    Սովորելու պարզություն և հեշտություն: Որպես կանոն, արդեն ունենալով PHP-ում ծրագրավորման փոքր փորձ, կարող եք ստեղծել պարզ կայքեր

    PHP-ն նման է C լեզվին, ուստի C-ի կամ C-ի նման շարահյուսությամբ լեզուներից մեկի իմացությունը կհեշտացնի PHP-ին տիրապետելը:

    PHP-ն աջակցում է տվյալների բազայի բազմաթիվ համակարգերի (MySQL, MSSQL, Oracle, Postgre, MongoDB և այլն)

    Հոսթինգի ծառայությունների տարածվածությունը և դրանց ցածր արժեքը: Քանի որ, որպես կանոն, հոսթինգ ընկերությունները հյուրընկալում են PHP կայքեր Apache կամ Nginx վեբ սերվերների վրա, որոնք աշխատում են Linux օպերացիոն համակարգերից մեկի վրա։ Ե՛վ վեբ սերվերները, և՛ Linux-ի վրա հիմնված օպերացիոն համակարգերն անվճար են, ինչը նվազեցնում է հոսթինգի օգտագործման ընդհանուր արժեքը

    Մշտական ​​զարգացում. PHP-ն շարունակում է զարգանալ, թողարկվում են նոր տարբերակներ, որոնք կրում են նոր գործառույթներ՝ հարմարեցնելով ծրագրավորման լեզուն նոր մարտահրավերներին։ Եվ, որպես կանոն, նոր տարբերակին անցնելը դժվար չէ։

    Այս պահի դրությամբ (2017թ. հոկտեմբեր) PHP-ի ներկայիս կայուն տարբերակը PHP 7.1-ն է:

Այժմ եկեք ստեղծենք մեր առաջին փոքրիկ կայքը PHP-ով: Բայց մինչ այն ստեղծելը, մենք պետք է ներբեռնենք և տեղադրենք կայքի մշակման համար անհրաժեշտ բոլոր գործիքները։

© Անդրեյ Կուխարչիկ
Համակարգչային թերթ

Ներածություն

Ինտերնետը վաղուց հաստատապես հաստատվել է մեր կյանքում: Այս համարձակ հայտարարությունը կարելի է բազմիցս ապացուցել կամ հերքել, բայց այսպես թե այնպես ամեն ինչ փոխվում է, և ոչ ոք սրա հետ չի վիճի։

Անցել են այն ժամանակները, երբ անհատական ​​համակարգչի շատ օգտատերեր, սկավառակի տարածությունը խնայելու համար, հեռացրել էին Internet Explorer ծրագիրը մեր սիրելի օպերացիոն համակարգից, քանի որ այն պարզապես նրանց պետք չէր։ Այժմ նույնիսկ նրանք, ովքեր մուտք չունեն համացանց, փորձում են չդիպչել այս ծրագրին, քանի որ ինտերնետի ձևաչափերը վաղուց տեղափոխվել են մեր համակարգչային կյանքի այլ ոլորտներ: Իսկ եթե մոդեմը տեղավորվել է համակարգչում, ապա պարզապես անհնար է խուսափել բրաուզերի առկայությունից, քանի որ իսկապես ուզում ես գոնե մեկ աչքով տեսնել, թե ինչ կա այնտեղ՝ հեռախոսագծից այն կողմ։ Եվ երբ ծանոթությունը կայացավ, այլեւս այնքան էլ հեշտ չէ հրաժարվել ցանցի առավելություններից։ Որոշ ժամանակ անց սկսում ես հասկանալ, որ պետք է ինչ-որ կերպ ներդնես քեզ և քո գաղափարները և դրսևորվես Գլոբալ ցանցի հսկայական տարածքներում: Նույնիսկ հեղինակավոր է դարձել սեփական էջ ստեղծելը, և եթե նույնիսկ դրա մեջ քիչ օգտակարություն կա, և հաշվիչը միայն գրանցում է քո հազվադեպ այցելությունները, քո արածը կարող է դառնալ լուրջ նախագծի սկիզբ և փոխել քո ամբողջ կյանքը։

Ճանապարհորդելով գլոբալ ինտերնետի հսկայական տարածքներով՝ դուք, իհարկե, հաճախ եք ուշադրություն դարձրել հիպերհղումներին, որոնք երբեմն հասնում են արտաքուստ շատ մեծ չափերի և պարզապես տարօրինակ նշանների առկայությամբ տարակուսանքի են հանգեցնում։ Եվ իհարկե, բոլորը ուշադրություն դարձրին այն ձևաթղթերին, որոնք պետք է լրացնել և դրա դիմաց ինչ-որ բան ստանալ։ Սակայն քչերն են մտածում, թե ինչպես է այդ ամենն աշխատում և ինչ է նշանակում:

Ես ձեզ հրավիրում եմ սուզվելու ծրագրավորման աշխարհ: Այս աշխարհը շատ առումներով նման չէ որևէ այլ բանի, բայց այն ունի իր չգրված օրենքներն ու կանոնները, իր դրական և բացասական կողմերը: Աշխարհը, որը բացվում է մեր առջև, տեսանելի է ևս մեկ քայլով, բայց այս քայլը պետք է տիրապետել, և այդ ժամանակ շատ ավելի հեշտ կլինի գնալ ավելի առաջ:

RNR-ի պատմություն

Միշտ պետք է սկսել ամենապարզից, իսկ հիմա ես կփորձեմ ձեզ ծանոթացնել PHP սկրիպտային լեզվով ծրագրավորմանը։ RHP (արտասանվում է PHP) ծնվել է 1994 թվականի աշնանը, և դրա ստեղծողը՝ Ռասմուս Լերդորֆը, օգտագործել է լեզուն իր նպատակների համար՝ պատկերացում կազմելու այն մարդկանց մասին, ովքեր այցելում են իր կայքը և ծանոթանում նրա հետ։ ռեզյումե.

Հեղինակի խոսքով՝ PNR-ը գրվել է բառացիորեն մեկ օրվա ընթացքում՝ գործնական հանդիպումների միջև ընկած ժամանակահատվածում։ Սկզբում դա պարզապես չնկարագրված CGI կեղև էր, որը գրված էր Perl-ով, և այն ծառայում էր բացառապես հատուկ նպատակների համար: Հղման համար՝ CGI (Common Gateway Interface) - ընդհանուր դարպասի ինտերֆեյս, ստանդարտ է, որը նախատեսված է HTTP սերվերի հավելվածներ ստեղծելու համար:

Այս հավելվածը, որը կոչվում է gateway կամ CGI ծրագիր, կատարվում է սերվերի կողմից իրական ժամանակում: Սերվերը օգտատիրոջ հարցումները փոխանցում է CGI ծրագրին, որը մշակում է դրանք և իր աշխատանքի արդյունքը վերադարձնում օգտագործողի էկրանին։

Այսպիսով, այցելուն ստանում է դինամիկ տեղեկատվություն, որը կարող է փոխվել տարբեր գործոնների ազդեցության արդյունքում։ Դարպասն ինքնին (CGI script) կարող է գրվել ծրագրավորման տարբեր լեզուներով՝ 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-ի, այլ սերվերի կողմից, և միայն աշխատանքի արդյունքները։ փոխանցվում են այցելուին: C-ով կամ Perl-ով գրված CGI ծրագիրը ճիշտ նույն կերպ է աշխատում: Բայց, ի տարբերություն CGI-ի, PHP կոդը կարող է տեղադրվել HTML էջի ցանկացած վայրում, ինչը հիմնական առավելությունն է CGI-ի նկատմամբ: Եվ բացի այդ, PHP լեզուն ինքնին շատ հեշտ է սովորել և որևէ կոնկրետ գիտելիքներ չի պահանջում։ Օրինակ, անձամբ ինձ համար բավական էր այն փորձը, որ ձեռք բերեցի տասը տարի առաջ դպրոցում ինֆորմատիկայի դասերին, որտեղ այն ժամանակ շատ մոդայիկ ու թանկարժեք Yamaha-ների վրա սովորում էինք BASIC լեզուն։ Չնայած նման վարդագույն բնութագրին, PHP-ն ունի նաև թերություններ. Հարկ է նշել PHP սկրիպտների բավականին դանդաղ (համեմատած CGI ծրագրերի) աշխատանքը, ինչպես նաև մեծ և բարդ ծրագրեր գրելու դժվարությունը։ Այսպես թե այնպես, PHP-ն մնում է մեկնաբանվող լեզու, ինչը, անշուշտ, հանգեցնում է կատարողականի անկման շատ մեծ և բարդ ծրագրերի դեպքում, սակայն կայքում պարզ մանիպուլյացիաներ կատարելու համար PHP-ն լավագույն ընտրությունն է։ Զարմանալի չէ, որ 2000 թվականի կեսերին PHP-ն օգտագործվել է ավելի քան 2,5 միլիոն կայքերում:

PHP-ի առանձնահատկությունները

Ինչպես ցանկացած ծրագրավորման լեզու, PHP-ն ունի իր շարահյուսությունը: Այն շատ նման է C-ի կամ Perl-ի շարահյուսությանը։ Ծրագրավորողները, ովքեր գրում են այս լեզուներով, կկարողանան տիրապետել PHP-ին ընդամենը մի քանի օրվա ընթացքում։ Բայց նույնիսկ եթե դուք երբեք չեք ծրագրավորել, PHP-ն հեշտ է օգտագործել և հիմք է տալիս ավելի առաջադեմ լեզուներին անցնելու համար: Բոլոր հրամանները բավականին տրամաբանական են, իսկ կանոնները՝ պարզ: Շարահյուսությունը ներառում է ստորակետերով առանձնացված հայտարարություններ: Սկսնակ ծրագրավորողների հիմնական սխալներից մեկը հայտարարությունների միջև ստորակետի բացակայությունն է։ Բարեբախտաբար, PHP-ի սխալները ցուցադրվում են էկրանին լռելյայն (ի տարբերություն CGI-ի, որտեղ բոլոր սխալները գրված են log ֆայլում), և դրանք որոշակի խնամքով և փորձով գտնելը դժվար չէ: Ավելին, խելացի թարգմանիչը ձեզ կասի այն տողի համարը, որտեղ տեղի է ունեցել սխալը:

PHP-ում ծրագրավորելու համար ձեզ հարկավոր է ցանկացած տեքստային խմբագրիչ, սակայն հարմարության համար այն պետք է ապահովի շարահյուսական ընդգծում և տողերի համարակալում: Ես օգտագործում եմ CuteHTML, որը ներառված է լավ FTP մենեջերի CuteFTP-ի վերջին տարբերակների հետ: Խմբագիրը շատ հարմար է, առանց ավելորդ ավելորդ գործառույթների, այն ներկառուցված է համատեքստի մենյուում, տեղադրում չի պահանջում և ունի ծրագրավորման համար անհրաժեշտ ամեն ինչ։ Մեզ պետք է նաև PHP-ի հետ աշխատելու հավաքածու։ Սովորաբար օգտագործվում է Apache+PHP, թեև դա չի պահանջվում որևէ սերվեր, ինչպիսին է Microsoft-ի IIS-ը: Բայց առաջին տարբերակն անվճար է և ունի մեծ աջակցություն փաստաթղթերով (այդ թվում՝ ռուսերենով) և ֆորումներով, որտեղ կարող եք իմանալ ցանկացած հարց:

Հիմա եկեք անցնենք գործին. գրեք մեր առաջին սցենարը: Որպեսզի սերվերը իմանա, թե որ ֆայլն է պարունակում PHP կոդը, դրա ընդլայնումը (ֆայլի) պետք է կազմվի կամ phtml, կամ php3, կամ php: Խստորեն ասած, ցանկացած ընդլայնում կարող է նշանակվել, բայց ես խորհուրդ եմ տալիս միշտ օգտագործել phtml համատեղելիության նկատառումներով: PHP-ի յուրաքանչյուր հրաման սովորաբար սկսվում է «.« (այսուհետ՝ առանց չակերտների): Ինչպես հիշում եք, մի քանի հրամաններ բաժանված են կետ-ստորակետով: Դուք կարող եք մեկնաբանություն տեղադրել PHP սկրիպտի ցանկացած կետում, այն սկսվում է «/*»-ով և ավարտվում «*/»-ով, եթե մեկնաբանությունը փոքր է և զբաղեցնում է միայն մեկ տող, դուք կարող եք տեղադրել «//» և այդպիսով հեշտությամբ մեկնաբանել ցանկացած տող մինչև վերջ, ինչպես միշտ, բացատները, ներդիրները և նոր տողերը պարզապես անտեսվում են և կարող են օգտագործվել PHP կոդի ընթեռնելիությունը բարելավելու համար:

Ցուցադրել և փոփոխականներ PHP-ում

PHP-ն շատ հեշտ է դարձնում տեքստի ելքը էկրանին կազմակերպելը: Դիտարկենք սցենարի օրինակ.

Այս սկրիպտը կարող է տեղակայվել HTML փաստաթղթի ցանկացած վայրում, և ինքնին ոչ մի օգտակար բան չի տալիս, քանի որ էկրանին ցուցադրում է միայն «Բարև աշխարհ»: Բայց այս կերպ մենք ծանոթանում ենք PHP-ի ամենատարածված հրամաններից մեկին՝ օգտագործողի էկրանին տեղեկատվության ցուցադրմանը: Մեր սցենարին որոշ օգտակար ֆունկցիոնալություն տալու համար եկեք նայենք փոփոխականներին: Փոփոխականը բնութագրվում է անունով, տեսակով և արժեքով: Անունը կարող է լինել ցանկացած և ներառել թվեր, անգլերեն այբուբենի տառեր և թույլատրելի նիշեր (օրինակ՝ ընդգծված կամ գծիկ): Ըստ տեսակի՝ փոփոխականները բաժանվում են ամբողջ թվերի, լողացող կետի և նիշերի։ Արժեքն ըստ տեսակի կարող է լինել գրեթե ամեն ինչ: Օրինակ՝ a=5 փոփոխականը: Սա մեզ ասում է, որ փոփոխականի անունը a է, տեսակը՝ ամբողջ թիվ, իսկ արժեքը՝ 5: Ահա անունների և արժեքների ավելի շատ օրինակներ.

Ինչպես տեսնում եք, PHP-ի բոլոր փոփոխականները (բայց ոչ միայն դրանում) պետք է սկսվեն $ նշանով, որը թարգմանչին թույլ է տալիս ճշգրիտ տարբերակել դրանք PHP հրամաններից։ Մեր սցենարի առաջին տողը $name փոփոխականին վերագրում է 6 արժեքը, և այս փոփոխականն ինքնաբերաբար դառնում է ամբողջ թիվ։ Ի դեպ, չարժե նախօրոք նկարագրել փոփոխականի տեսակը, ինչպես Pascal-ում կամ Visual Basic-ում, բայց թեև տեսակների բաժանումը զուտ պայմանական է, յուրաքանչյուր փոփոխական ինքնաբերաբար ձգտում է օգտագործել ճիշտ տեսակը՝ ըստ արժեքի։ Կոդի երկրորդ տողը $h12 փոփոխականը սահմանում է 4.89, որը լողացող կետի արժեք է։ Կոդի երրորդ և չորրորդ տողերը արժեքներ են տալիս իրենց փոփոխականներին, որոնք նիշերի տողեր են: Ցանկացած բան, որը կցված է չակերտների մեջ (ներառյալ թվերը) կմեկնաբանվի որպես նիշերի տող: Եթե ​​փոփոխականները նախկինում սահմանված չեն, բայց օգտագործվում են, ապա դրանց արժեքը ենթադրվում է որպես զրո կամ դատարկ տող՝ կախված տեսակից:

Ինչպես ցանկացած լեզվով, դուք կարող եք կատարել ցանկացած թվաբանական գործողություններ փոփոխականների վրա, և դա չի պահանջում հատուկ օպերատորի առկայությունը, բավարար է արդյունքի համար նշել փոփոխականը, հավասարության նշանը և թվարկել փոփոխականները կամ արժեքները անհրաժեշտ թվաբանական նշաններ բնական կարգով. Օրինակ:

Սցենարի արդյունքը 4 թվի ցուցադրումն է: Աջակցվում են բոլոր թվաբանական գործողություններ և ֆունկցիաներ, բազմաստիճան փակագծեր, տրամաբանական գործողություններ, մեկով մեծացնելու կամ փոքրացնելու և շատ ավելին: Բացի այդ, եթե - ապա - հակառակ դեպքում համեմատությունը շատ պարզ և բնական է: Դա անելու համար PHP-ն օգտագործում է if () ( ) 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 լեզվով ծրագրավորումը:

PHP ծրագրավորման լեզու

PHP-ն հայտնագործվել է Ռասմուս Լերդորֆի կողմից 1994 թվականի վերջին։ Առաջին տարբերակը թողարկվել է 1995 թվականին «Personal Home Page Toolkit» անվամբ, այնուհետև այն վերանախագծվել է և անվանվել PHP/FI տարբերակ 2 (FI - ձևի մշակման մոդուլ)։ Ավելացվել է նաև mSQL տվյալների բազաների աջակցությունը: Այդ պահից կամավորները սկսեցին մասնակցել մշակմանը։

PHP-ի օգտագործման վիճակագրությունը մոտավոր է, սակայն Netcraft-ի կողմից անցկացված ուսումնասիրության համաձայն՝ 2001 թվականի սկզբին PHP-ն օգտագործվել է ավելի քան 5,300,000 կայքերում ամբողջ աշխարհում։ Համեմատության համար. այս պահին IIS սերվերների թիվը մոտավորապես նույնն էր (5 միլիոն): PHP թարգմանչի մշակումը տեղի ունեցավ կազմակերպված թիմային գործընթացի ձևով, որի միջուկը մշակվում էր Zend.com-ի կողմից: Այնուամենայնիվ, PHP-ն ազատորեն տարածվում է. դրա վերջին տարբերակը կարելի է ներբեռնել PHP.net-ից: PHP մոդուլները մատակարարվում են Apache սերվերով և Linux համակարգի փաթեթներով:

Ի սկզբանե PHP հապավումը նշանակում էր Գլխավոր Էջերի Preprocessor - գլխավոր էջի preprocessor: Սա HTML էջերում ներկառուցված և սերվերի վրա գործարկվող սկրիպտների լեզու է: Մեծ մասամբ դրա շարահյուսությունը փոխառված է այնպիսի լեզուներից, ինչպիսիք են C, Perl, Java, և միևնույն ժամանակ ավելացվում են բազմաթիվ առանձնահատկություններ, որոնք չունեն այս լեզուները: Պարզ ասած, PHP-ի շարահյուսությունը խելացի այլընտրանք է և՛ C-ի խստությանը, և՛ Perl-ի «անսահմանափակությանը»:

PHP-ն օժտված է ֆունկցիոնալության գրեթե ամբողջական փաթեթով, որի մասին (մինչ PHP-ի հայտնվելը) վեբ ծրագրավորողը կարող էր միայն երազել: Դրա նպատակն է թույլ տալ ձեզ հնարավորինս արագ ստեղծել դինամիկ ձևավորված վեբ էջեր: Իրավացիորեն կարող ենք ասել, որ PHP սովորելն ու օգտագործելը շահավետ կլինի ինչպես սկսնակների, այնպես էլ պրոֆեսիոնալ ծրագրավորողների համար։

PHP ծրագրավորման լեզվի համեմատություն այլ վեբ հավելվածների ծրագրավորման լեզուների հետ

Ծրագրավորման գործիքների ընտրությունն արդարացնելու համար PHP-ն համեմատվել է վեբ հավելվածների ծրագրավորման այլ լեզուների հետ։ PHP-ի հիմնական մրցակիցներն են JSP (Java Server Pages and Java Scriptlets), ASP.NET (Active Server Pages), Perl և Cold Fusion Server Pages տեխնոլոգիաները։

1. Ծրագրավորման լեզուներ PHP և Perl

Perl-ը ստեղծվել է ծրագրավորող Լարի Ուոլի կողմից և նշանակում է Practical Extraction and Report Language: Սա կարող է թարգմանվել որպես «գործնական տվյալների արդյունահանման և հաշվետվությունների լեզու»: Perl-ը թարգմանիչ է և գոյություն ունի ավելի երկար, քան համացանցը: Ինտերնետի գալուստով Perl-ը պարզվեց, որ հարմար գործիք է դինամիկ վեբ էջեր ստեղծելու համար: Perl-ը լայն տարածում գտավ, քանի որ այն հասանելի էր յուրաքանչյուր վեբ սերվերի վրա, քանի որ գրեթե բոլորն աշխատում էին UNIX-ով, և դրա միակ այլընտրանքը ավելի բարդ C լեզուն էր, չնայած այն հանգամանքին, որ PHP-ն առաջարկում է Perl-ի նման ֆունկցիոնալություն զգալիորեն ավելի քիչ ավելորդությամբ և շարահյուսության համեմատական ​​պարզությամբ: Perl լեզվի ավելորդությունը պայմանավորված է նրանով, որ այն մշակվել է զանազան հավելվածների համար, ինչը չէր կարող չազդել դրա շարահյուսության վրա, մինչդեռ PHP-ն ի սկզբանե մշակվել էր ինտերնետի համար: Շատ օգտատերերի կարծիքով, ովքեր սկզբում չգիտեին ոչ PHP, ոչ Perl, PHP սովորելը շատ ավելի հեշտ է:

2. Ծրագրավորման լեզուներ PHP և Java

Ընդհանուր առմամբ, կա տարբերություն Java լեզվի և Java տեխնոլոգիայի միջև: Java լեզուն C-ի նման լեզու է, որը նախագծվել է որպես «ընդլայնված C++»: Java տեխնոլոգիան ներառում է հաճախորդի և սերվերի մասեր, ինչպես նաև տվյալների բազաների հասանելիություն, ուստի առավել ճիշտ է համեմատել Java տեխնոլոգիան Apache/PHP/MySQL համակցության հետ: Java տեխնոլոգիան մշակվել է որպես միջպլատֆորմային տեխնոլոգիա, որը թույլ է տալիս ստեղծել ձեռնարկատիրական մասշտաբի վեբ հավելվածներ: Այս տեխնոլոգիայի հիմնական առավելություններն են միջպլատֆորմային շարժունակությունը և օբյեկտի վրա հիմնված լեզուն, որը թույլ է տալիս ստեղծել բարդ և ծավալուն հավելվածներ: Թերությունները ներառում են դանդաղ կատարումը, հիշողության մեծ սպառումը (միջպլատֆորմային փոխադրելիության արժեքը) և PHP-ի համեմատ վեբ հավելվածների մշակման բարդությունը: Մինչդեռ PHP-ն գրեթե նույնքան լավն է, որքան Java-ն ստեղծված հավելվածների ճկունությամբ և մասշտաբայնությամբ: Բացի այդ, Java-ի օգտագործումը բավականին պարզ հավելվածներ մշակելու համար դժվար թե արդարացված լինի, իսկ լուրջ խնդիրների վրա աշխատելիս Java-ն ավելի թանկ է։

3. Ծրագրավորման լեզուներ PHP և ASP.NET

ASP (Active Server Pages) սկրիպտավորման լեզու է Microsoft-ից: Եթե ​​ASP լեզուն զգալիորեն զիջում էր PHP-ին շատ առումներով, առաջին հերթին սցենարի կատարման ժամանակի առումով, ապա ASP.NET տեխնոլոգիայի հայտնվելով իրավիճակը փոխվեց։ ASP.NET-ի հիմնական առավելությունը Windows-ի ինտերֆեյսի ողջ հզորությունն օգտագործելու հնարավորությունն է վեբ հավելվածներ մշակելու համար: Սա թույլ է տալիս զարգացնել բարդ ինտերֆեյսներով էջեր՝ առանց անհանգստանալու դինամիկ էջերում օգտագործվող փոփոխականների պահպանման, գաղտնագրման և փոխանցման մասին: ASP.NET-ը սերտորեն ինտեգրված է Microsoft-ի նոր NET տեխնոլոգիային: ASP.NET-ի օգտագործմամբ վեբ հավելվածների մշակման հիմնական առանձնահատկությունը NET-ի գործարկման ցանկացած ծրագրավորման լեզու օգտագործելու հնարավորությունն է: Սա կարող է լինել կամ Visual Basic-ի փոփոխված տարբերակը՝ Visual Basic.NET, կամ նոր C# լեզու կամ Java կլոն՝ J#: Ավելին, ծրագրավորման մի քանի լեզուներ կարող են օգտագործվել մեկ վեբ հավելվածում: Այս ամենը թույլ է տալիս մեզ միավորել ծրագրավորման տարբեր լեզուներով խոսող ծրագրավորողների մեկ նախագծի շրջանակներում։ ASP.NET վեբ հավելվածի կոդը կազմվում է Microsoft միջանկյալ լեզվով (MSIL), որը երբեմն պարզապես կոչվում է IL: Սարքավորումից անկախ IL կոդը պահվում է վեբ սերվերում՝ բարելավելու աշխատանքը՝ Java բայթկոդի նման: Բայց ի տարբերություն Java տեխնոլոգիայի, որն ապահովում է հարթակի անկախություն, NET-ը անկախություն է ապահովում զարգացման լեզվից: ASP.NET վեբ հավելվածների գործարկումը ոչ Windows սերվերների վրա գրեթե անհնար է: Ավելին, եթե վեբ հավելվածը մեծ քանակությամբ օգտագործում է NET բաղադրիչները, դինամիկ էջը դիտելը հնարավոր կլինի միայն Windows-ի ներքո և միայն Internet Explorer բրաուզերի միջոցով: Հետևաբար, շարժականության առումով PHP-ն, անշուշտ, տարբերվում է ASP.NET-ից դեպի լավը: Մեկ այլ չափազանց կարևոր փաստարկ՝ հօգուտ PHP-ի, հայտնաբերված սխալների արագ ուղղումն է։ Տեսականորեն, դուք կարող եք դրանք ուղղել ինքներդ, եթե ունեք բավարար որակավորում: Կարող եք նաև նամակ գրել ծրագրավորողներին, և մեծ հավանականության դեպքում հաջորդ տարբերակում սխալը կուղղվի։ Իսկ PHP-ի տարբերակները շատ հաճախ են թողարկվում։ PHP-ի մեկ այլ առավելություն, որը հատկապես կարևոր է սկսնակների համար, այն է, որ այն ավելի հեշտ է օգտագործել վեբ հավելվածներ ստեղծելու համար: Այսպիսով, երբ ընտրելով ASP.NET-ի և PHP-ի միջև, դուք պետք է ելնեք առաջադրանքից: Եթե ​​խոշոր կորպորացիայի Ինտրանետում սերվերների և հաճախորդի մեքենաների մեծ մասը աշխատում է Windows, օգտագործեք ASP: NET-ն ավելի քան արդարացված է։ Միևնույն ժամանակ, Ինտերնետում տեղակայված վեբ կայք մշակելու համար ավելի նպատակահարմար է օգտագործել PHP:

4. Ծրագրավորման լեզուներ՝ PHP և ColdFusion

ColdFusion փաթեթը մշակվել է Allaire-ի կողմից և նախատեսված է ինչպես ինտերակտիվ, այնպես էլ դինամիկ վեբ փաստաթղթերի արագ զարգացման համար՝ տվյալների բազայից ստացված տեղեկատվության մշակման միջոցով: ColdFusion-ի թերությունը նրա բավականին ցածր շարժունակությունն է: PHP-ն աշխատում է գրեթե բոլոր հարթակներում, սակայն ColdFusion-ն աշխատում է միայն չորսով՝ Win32, Solaris, HP/UX և Linux: Բացի այդ, ColdFusion-ը, ինչպես ASP-ն, կոմերցիոն զարգացում է: ColdFusion-ը բավականին հազվադեպ է: PHP-ի համեմատությամբ այն ավելի պահանջկոտ է ռեսուրսների նկատմամբ։ ColdFusion-ի առավելությունը լավ ինտեգրված զարգացման միջավայրն է և, որպես արդյունք, ավելի պարզ լեզվական կառուցվածք, քան PHP-ում և ավելի արագ կոդ գրելը: Ճիշտ է, նման բարձր մակարդակի լեզվի պատճառով որոշ խնդիրներ նրանում ավելի դժվար է լուծել։

5. Ծրագրավորման լեզուներ PHP 4.0 և PHP 5.0

Հիմնական տարբերությունները կայանում են օբյեկտի վրա հիմնված մոդելի իրականացման մեջ: PHP 4.0-ն աշխատում էր Zend Engine 1.0-ով: PHP 5.0-ի թողարկմամբ Zend-ը ամբողջությամբ վերաշարադրեց շարժիչը և թողարկեց Zend Engine 2.0-ը, որը, ըստ ստեղծողների, իրականացնում է «նոր օբյեկտի մոդել»: PHP 4.0-ի համեմատությամբ՝ լեզվի հինգերորդ տարբերակն ունի հետևյալ հատկանիշները.

1. Ներկայացրեց դասի մասնավոր և հանրային անդամներին և մեթոդներին, ինչպես նաև վերացական դասերին և մեթոդներին:

2. Ներդրվում են միջերեսները, և դասը կարող է իրականացնել ինտերֆեյսների կամայական ցանկ:

3. PHP 5-ը պարունակում է նաև օբյեկտների կլոնավորման ընդլայնված հնարավորություններ: Այս նպատակով նախատեսված պատճենի կոնստրուկտորը թույլ է տալիս ոչ միայն նույնականորեն կլոնավորել օբյեկտները, այլև փոխել դրանց որոշ հատկություններ:

4. Ներդրվել են դասի մշտական ​​անդամները և մեթոդները:

5. Ամենակարևոր նորամուծություններից մեկը դեստրուկտորների առկայությունն է։

6. Լավ նորությունը PHP 5.0-ում ստատիկ դասի անդամների ներդրումն է: PHP 4.0-ում, եթե ստատիկ անդամներ օգտագործելու անհրաժեշտություն կար, անհրաժեշտ էր օգտագործել արհեստական ​​տեխնիկա, որը բաղկացած էր գլոբալ փոփոխականները ստատիկ մեթոդների հետ համատեղելուց: Դա հանգեցրեց դասերի, որոնք գործում էին նույն կերպ, ինչ ստատիկները: Այս տեխնիկան, մեղմ ասած, այնքան էլ լավը չէ, քանի որ այն խնդիրներ է առաջացրել՝ կապված գլոբալ փոփոխականների օգտագործման հետ։ PHP 5.0-ում ստատիկ մեթոդներն այժմ կարող են բացահայտորեն հայտարարվել՝ օգտագործելով ստատիկ հիմնաբառը:

7. PHP 5.0-ը ներկայացրեց բացառությունների մշակման մեխանիզմ, որը բացակայում էր PHP 4.0-ում: Այսպիսով, օբյեկտային մոդելում նման նորամուծությունների արդյունքում PHP 5.0-ը դարձել է լիովին պրոֆեսիոնալ ծրագրավորման լեզու, որը թույլ է տալիս այն օգտագործել ցանկացած բարդության խնդիրներ լուծելու համար։

PHP լեզուն վստահորեն հայտնվում է ամենահայտնի ծրագրավորման լեզուների առաջին հորիզոնականում, բայց ամեն ինչ ունի իր վերջը։ Արդյո՞ք PHP-ն սպառնում է չօգտագործվել, ի՞նչը կարող է փոխարինել այն, և ո՞ր լեզուն կընտրեիք Facebook-ի նման կայք ստեղծելու համար: Այս հարցերին պատասխանել են Quora կայքի օգտատերերը։

Ջորջ Մաուերը, դասավանդում է JS

PHP-ն մեռնում է, Java-ն մեռնում է, C#-ը մեռնում է, SQL-ն մեռնում է, JavaScript-ը մեռնում է, C-ն մեռնում է: Եվ այնուամենայնիվ, այս լեզուներով նախագծերը զգալիորեն ավելի շատ են, քան նախագծերը բոլոր չցուցակված ծրագրավորման լեզուներով միասին: Այո, երբեմն նոր միտումները կարող են տեղաշարժել հաստատված ինչ-որ բան, բայց այս գործընթացը չափազանց դանդաղ է տեղի ունենում: Սա չի նշանակում, որ ամենահինը վատն է։

Չեմ կարող համաձայնվել, որ PHP-ն լավագույն տարբերակն էր Facebook ստեղծելու համար։ Այս սոցիալական ցանցի ստեղծողները իրականում միայն մասամբ են օգտագործում PHP: Մեր օրերում կարելի է ասել, որ այս լեզվի փոխարեն նրանք ունեն իրենց բարբառը, որը կոչվում է Hack։ PHP-ն պարզապես այն լեզուն էր, որով Ցուկերբերգը և այլ մշակողները սկսեցին աշխատել այս նախագծի վրա:

Դա չի նշանակում, որ PHP-ն այդքան վատ ընտրություն էր: Այնուամենայնիվ, դա լեզու է, որը համապատասխանում է հավելվածների արագ մշակման պահանջներին: Իսկ դա իր հերթին ստարտափի առանցքային գործոններից մեկն է՝ Facebook-ի դեպքում այս գործոնը որոշիչ դեր է խաղացել։ Սկզբում PHP-ն սկրիպտների մի տեսակ հավաքածու էր։ Եվ սա հեշտացնում է աբստրակցիայի ավելի ցածր մակարդակի անցնելը և C կոդ ստեղծելը, երբ իրականում օպտիմալացման կարիք կա: Այս ամենը մանրակրկիտ ուսումնասիրվել և հաջողությամբ ներդրվել է ժամանակակից լեզուների մեծ մասում:

Խնդրում եմ ձեր գլխից դուրս հանեք այն միտքը, որ սոցիալական ցանցը ծրագրավորման լեզվից կոնկրետ բան է պահանջում: Կոդի ստեղծման մեծ մասը լիովին ստանդարտ և ծանոթ կլինի: Այո, կան որոշ խնդրահարույց ոլորտներ, ինչպիսիք են ենթադրյալ և պոտենցիալ ընկերներին համապատասխանելը, բայց նմանատիպ հարցերն առավել հաճախ լուծվում են մասնագիտացված ծրագրերի օգնությամբ: Օրինակ՝ գրաֆիկական ուղղվածության տվյալների բազաները։ Դուք պետք է չափազանց զգույշ և զգույշ լինեք ձեր համակարգը կառուցելիս, ինչպես նաև լավ պատկերացում ունենաք DevOps-ի մասին, բայց նույնը պետք է արվի այլ լեզուների դեպքում: Կատարյալ զարգացման լեզու ունենալու փոխարեն ձեզ համար ավելի կարևոր են փորձառու և բանիմաց մշակողները:

Եվ սա, փաստորեն, ինձ բերում է հարցի բուն: PHP-ն չափազանց գրավիչ է, թեկուզ միայն այն պատճառով, որ ներկայումս այն լավ գիտեն հսկայական թվով մասնագետներ: Բայց դուք հավանաբար չեք ցանկանում, որ այս մասնագետներից որևէ մեկը աշխատի ձեր ստարտափի վրա: Դուք կցանկանաք աշխատանքի ընդունել մարդկանց, ովքեր տիրապետում են մի քանի լեզուների, մարդկանց, ովքեր ունեն լավ ձևավորված և տեղեկացված աշխարհայացք: Եվ այս մարդկանցից շատերն իրականում չեն սիրում PHP:

Պատկերացրեք. ես նստած եմ բոլորովին նոր գրասենյակում, որը վարձակալել եմ իմ նոր գրանցված ստարտափի զարգացման համար, նայում եմ գրասեղանիս՝ նախագծի մշակման համար ստացված գումարով և մտածում եմ, թե որ ծրագրավորման լեզուն ընտրեմ: Ես հասկանում եմ, որ սա խնդիր է 250-ի մոտ այն բաների ցանկում, որոնք կորոշեն իմ ապագա ձեռնարկության հաջողությունը կամ ձախողումը: Եվ ես սկսում եմ հասկանալ, որ այս որոշումը պետք է կայացվի զարգացման թիմի հետ միասին, որը ես դեռ չունեմ: Հետևաբար, ես ինքս սկսում եմ փնտրել լեզվական տարբերակներ, որոնք համեմատաբար լայն տարածում ունենային, հեշտությամբ թույլ կտան ծրագրավորողներին անցնել վերացականության ավելի ցածր մակարդակ և, որ ամենակարևորն է, ես կունենամ ծանոթ մշակողներ, ովքեր լավագույնն են իրենց բիզնեսում:

Այս պահին նման լեզուն Էլիքսիրն է։ Այն հիմնված է Beam վիրտուալ մեքենայի վրա և Erlang լեզվի բավականին մոտ ազգականն է, որն իրեն ապացուցել է մի շարք նախագծերում մի քանի տասնամյակների ընթացքում: Բացի այդ, այս լեզուն ցույց է տալիս պարզապես աներևակայելի կատարողական արդյունքներ:

Մեկ այլ հիանալի ընտրություն Go-ն է: Այն հիմնականում ցածր մակարդակի լեզու է, բայց այն կարող է անել այն ամենը, ինչ կարելի է անել բարձր մակարդակի լեզուներով: Թեև դրա կառուցվածքի վերաբերյալ որոշ որոշումներ ինձ դուր չեն գալիս, այնուամենայնիվ, այն այս կամ այն ​​կերպ ուշադրության է արժանի։

Մեկ այլ տարբերակ կլինի Clojure-ը: Հնարավորություն կա, որ այս լեզվի համար ծրագրավորողներ գտնելը հեշտ չի լինի, բայց հաշվի առնելով, որ այս լեզուն LISP-ի անմիջական ժառանգն է, կարող եմ անկեղծորեն ասել, որ այն աներևակայելի հզոր է և տալիս է զարգացման բազմաթիվ տարբերակներ:

Մի քանի կարևոր նշում.

  • նայեք F#-ին .Net Framework-ում կամ նույնիսկ ամենուր տարածված C#-ին: Եթե ​​դուք ընտրում եք վերջին տարբերակը, պատրաստ եղեք ունենալ շատ ավելի շատ ռեզյումեներ՝ վերանայելու և մաղելու համար՝ հիանալի թիմ ստեղծելու համար:
  • Դուք կարող եք որոշ տպավորիչ բաներ անել Scala-ի հետ;
  • Node.js. Պարզապես պետք է նշեմ Node.js-ը: Անձամբ ես կարծում եմ, որ Javascript-ն այս պահին շղթայի վերևում է, բայց Node-ը նույնպես երկար ժամանակ եղել է բավականին լայնորեն օգտագործվող լեզուների ցանկում: Բացի այդ, կան մեծ թվով բարձր որակավորում ունեցող մասնագետներ։

PHP (Հիպերտեքստի նախնական պրոցեսոր) սերվերի կողմից վեբ ծրագրավորման ամենահայտնի գործիքներից մեկն է: PHP-ի աշխատանքը իր ամենապարզ ձևով հանգում է հաճախորդի http հարցումը մշակելուն: Հարցման մշակումն իր հերթին բաղկացած է ծրագրային կերպով հիպերտեքստի գեներացումից՝ ըստ հարցումի պարամետրերի, որից հետո ստացված նշումը վերադարձվում է հաճախորդին։ Երբ հաճախորդը (Ինտերնետ զննարկիչը) պահանջում է սովորական ստատիկ ինտերնետային էջ (առավել հաճախ՝ html ընդլայնմամբ), սերվերը վերադարձնում է այս էջի բովանդակությունը որպես պատասխան՝ առանց փոփոխությունների «ինչպես կա»: Եթե ​​պահանջվում է PHP էջ, ապա հարցման մշակման ընթացքում նշված էջի բովանդակությունը նախ մշակվում է PHP թարգմանչի կողմից, և միայն դրանից հետո այս մշակման արդյունքն ուղարկվում է հաճախորդին։

Այլ կերպ ասած, PHP-ն հիպերտեքստային նախապրոցեսոր է, ինչպես արտացոլված է իր անվան մեջ։ Նախընտրականպրոցեսոր, քանի որ հիպերտեքստը վերջնական մշակման է ենթարկվում հաճախորդի կողմից, որի արդյունքը մենք տեսնում ենք դիտարկիչի պատուհանում (հիպերտեքստային պրոցեսորը հենց բրաուզերն է): Կարելի է ասել, որ PHP-ն հիպերտեքստի գեներատոր է, քանի որ շատ դեպքերում նրա աշխատանքը ծրագրային ձևավորում է տվյալների բազայի բովանդակությունից կամ սերվերում տեղակայված ցանկացած այլ կառուցվածքային տեղեկատվությունից: Հապավումը նման է PHP-ին, և ոչ թե, օրինակ, ՀԷԿ-ին կամ այլ կերպ, քանի որ այն ի սկզբանե նշանակում էր. Անձնական գլխավոր էջի գործիքներ– անձնական ինտերնետային էջեր ստեղծելու գործիքներ: Այսպիսով, PHP-ի վերծանման առաջին տարբերակն արտացոլում էր դրա նպատակը, իսկ ներկայիսն արտացոլում է գործողության սկզբունքը։

PHP-ն ծրագրավորման լեզու է, որն աջակցում է գրեթե ամեն ինչ՝ փոփոխականներ, պայմանական հայտարարություններ, հանգույցներ, ֆունկցիաներ և այլն։ PHP-ն է օբյեկտ-կողմնորոշված ​​ծրագրավորման լեզու– այն աջակցում է , ինչպես նաև դասի մակարդակով ավանդական ժառանգությանը: PHP-ն վեբ ծրագրավորման լեզու է, քանի որ այն հիմնականում ստեղծվել է դինամիկ ինտերնետային կայքերի զարգացման համար և, հետևաբար, պարունակում է այս ոլորտում օգտագործվող պատրաստի մեծ թվով լուծումներ, ինչպիսիք են.

  • պարամետրերի մշակում և արդյունահանում http հարցումներ GET և POST;
  • ձևավորում և ուղարկում http վերնագրեր;
  • պահեստավորման ենթակառուցվածք նստաշրջանի տվյալները;
  • հետ աշխատելու համար նախատեսված ծրագրային ծառայություններ թխվածքաբլիթներ;

    թխվածքաբլիթներ- հաճախորդի համակարգչում զննարկչի կողմից պահպանված տեքստային տվյալներ, որոնք առավել հաճախ պարունակում են մուտքի պարամետրեր (մուտք և գաղտնաբառ) կամ օգտագործողի անձնական կարգավորումներ: Թխուկները ստեղծվում են դիտարկիչի կողմից և ավտոմատ կերպով ուղարկվում սերվերին HTTP հարցումների վերնագրերում յուրաքանչյուր հեռավոր մուտքի ընթացքում:


  • աշխատել ֆայլերի հետ FTP արձանագրություն;
  • աշխատել տվյալների բազաների հետ՝ օգտագործելով ;
  • աջակցություն
  • աջակցություն HTTP թույլտվություն;
  • փոստով հաղորդագրություններ և շատ ավելին:

Այս բաժնում ես նախատեսում եմ համառոտ կերպով վերանայել PHP-ի օգտագործման հիմնական կետերը՝ պարզ վեբ հավելվածներ ստեղծելու համար: Նյութերը կկազմակերպվեն մի քանի բաժինների, որոնցից յուրաքանչյուրը կպարունակի օրինակներ՝ իրենց սկզբնական կոդով: Անկախ փորձերի համար ձեզ անհրաժեշտ է ցանկացած այլ կայք, որտեղ դուք ունեք լիարժեք մուտք, և որի սերվերի վրա տեղադրված է PHP:

PHP ծրագրավորման հիմունքներ

PHP կոդի ավելացում նշագրմանը և հիպերտեքստի նախապրոցեսորի արդյունքին

PHP կոդը ուղղակիորեն ավելացվում է HTML նշագրման ցանկացած վայրում: HTML նշումն ինքնին կարող է ընդհանրապես գոյություն չունենալ, և էջի սկզբնական կոդը կարող է ներկայացվել միայն PHP ծրագրի մի հատվածով: Ամեն դեպքում, PHP տեղադրելու համար անհրաժեշտ է օգտագործել հատուկ պիտակ և տեղադրել ծրագրի տեքստը դրա ներսում։ Դա արվում է հետևյալ կերպ.

ծրագրի կոդը ?>

PHP թարգմանիչ բաժնի գործարկման ժամանակփոխարինվում են դրանցում տեղակայված ծրագրի կոդի գործարկման արդյունքում առաջացած նշագրմամբ։ Նախապրոցեսորի արդյունքը ցուցադրելու համար օգտագործվում է օպերատորը արձագանք, որոնց արգումենտները կարող են լինել հաստատուններ, փոփոխականներ, ֆունկցիաներ կամ տարբեր տեսակի արտահայտություններ, իսկ արդյունքը՝ տեքստ։ Ամենապարզ տարբերակը կարող է այսպիսի տեսք ունենալ.

"; ?>

Եթե ​​բրաուզերում բացեք ստացված էջի սկզբնաղբյուրը, ապա այնտեղ այլևս PHP չի լինի (եթե իհարկե սերվերում տեղադրված չէ PHP թարգմանիչ)։ Էխո օպերատորն այս կերպ օգտագործելը շատ իմաստ չունի: PHP-ի գեղեցկությունն այն է, որ ստեղծվող HTML-ը կարող է կախված լինել հարցումների պարամետրերից, տվյալների բազայի բովանդակությունից, անվտանգության քաղաքականությունից և շատ ավելին: Այս ամենի վերլուծությունը և մշակումը կատարվում է գրեթե բոլորին ծանոթների միջոցով, ինչպիսիք են օղակները, պայմանները, գործառույթները և այլն: Նայելով առաջ՝ ես կտամ PHP ծրագրի մի փոքրիկ օրինակ՝ օգտագործելով հանգույց և պայմանական դրույթ, որպեսզի հիպերտեքստի նախապրոցեսորի նախնական ըմբռնումն ավելի ամբողջական դառնա: Հետևյալ ծրագիրը տպում է 1-ից 9 թվերի գործոնային արժեքները:

Օրինակ ծրագիր PHP-ում Այս նշումը ստեղծվում է ծրագրային կերպով PHP թարգմանչի կողմից:"; $f=1; ($i=1; $i<10; $i++) { if ($i>1) $f=$f*$i; echo $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 բաժնից, որի արժեքը համընկնում է արտահայտության արժեքի հետ և շարունակվում է բոլոր հետագա դեպքերի ընթացքում մինչև ընդմիջման հրամանի բախվելը՝ ամբողջական կատարում: Լռելյայն բաժինը պայմանական հայտարարության մեջ այլ բաժնի այլընտրանքն է:

Անջատիչ ( արտահայտություն) (գործ արժեքը 1: օպերատոր 1; գործ արժեքը 2: օպերատոր 2; գործ արժեքը 3: օպերատոր 3; լռելյայն: լռելյայն օպերատոր; ) անել հանգույց մարմին; մինչդեռ ( վիճակ);

Նույն օրինակը.

$i=2; $f=1; անել ($f=$f*$i; $i++; echo $i,"!=",$f,"
«;) մինչդեռ ($i<10);

Ավելի մանրամասն մասին անել... while loopկարդալ .

Զանգվածի կամ foreach օպերատորի տարրերի պտտում

Առանձին-առանձին մի քանի խոսք ասվելու է զանգվածների մասին, իսկ ստորև ներկայացված է շինություն՝ իր տարրերի միջով օղակում կրկնելու համար.

Foreach ( զանգվածորպես $ տարր) արտահայտություն, որտեղ մենք ինչ-որ բան ենք անում $element փոփոխականով;

$values ​​= զանգված ("for", "while", "do", "foreach"); echo "Loops in php:","
"; foreach ($values ​​​​որպես $operator) echo $operator, "
";

Loops-ը և ընտրության օպերատորը PHP-ում, ինչպես նաև ծրագրավորման շատ այլ լեզուներում, աջակցում են հրահանգներին ընդմիջում– ցիկլի վաղ ավարտը և շարունակել- ցիկլի ընթացիկ կրկնության վաղ ավարտը (անցում դեպի ցիկլի սկիզբ): Կարդացեք ավելին նրանց մասին:



Կիսվել