Php програмчлалын хэл гарч ирсэн жил. Дамми нарт зориулсан PHP хэл: гадаад төрх байдлын түүх, үндсэн шинж чанарууд

Сүүлийн шинэчлэлт: 2017.10.20

Өнөөдөр PHP бол вэб програмчлалын хамгийн түгээмэл хэл юм. Интернет дэх сайтууд болон вэб үйлчилгээний дийлэнх нь PHP ашиглан бичигдсэн байдаг. Зарим тооцоогоор PHP нь facebook.com, vk.com, baidu.com болон бусад вэбсайтуудын 80 гаруй хувьд хэрэглэгддэг. Мөн ийм алдартай нь гайхмаар зүйл биш юм. Хэлний энгийн байдал нь янз бүрийн нарийн төвөгтэй вэбсайт, порталуудыг хурдан бөгөөд хялбархан үүсгэх боломжийг олгодог.

РНР хэлийг 1994 онд Данийн программист Расмус Лердорф бүтээсэн ба анх Перл хэл дээрх скриптүүдийн багц байсан. Дараа нь энэ багц скриптийг Си хэл дээр орчуулагч болгон дахин бичсэн. PHP (PHP-ийн товчлол: Hypertext Preprocessor) нь үүсгэн байгуулагдсан цагаасаа хойш вэб хуудас, вэб програм үүсгэх ажлыг хялбарчлахад тохиромжтой хэрэгслүүдийн багц байсаар ирсэн.

PHP ямар давуу талтай вэ?

    Бүх нийтлэг үйлдлийн системүүд (Windows, MacOS, Linux) PHP хөгжүүлэлтийн багцын өөрийн гэсэн хувилбартай байдаг бөгөөд энэ нь та эдгээр үйлдлийн системүүдийн аль нэг дээр вэбсайт үүсгэх боломжтой гэсэн үг юм.

    PHP нь янз бүрийн вэб серверүүдтэй хамтран ажиллах боломжтой: Apache, Nginx, IIS

    Энгийн байдал, сурахад хялбар байдал. Дүрмээр бол та PHP дээр програмчлалын талаар бага зэрэг туршлагатай бол энгийн вэбсайт үүсгэж болно

    PHP нь Си хэлтэй төстэй тул C хэл эсвэл C-тэй төстэй синтакстай хэлүүдийн аль нэгийг мэдэх нь PHP хэлийг эзэмшихэд хялбар болгоно.

    PHP нь олон мэдээллийн сангийн системийг дэмждэг (MySQL, MSSQL, Oracle, Postgre, MongoDB болон бусад)

    Хостинг үйлчилгээний тархалт, хямд өртөг. Дүрмээр бол хостинг компаниуд Линукс үйлдлийн системүүдийн аль нэг дээр ажилладаг Apache эсвэл Nginx вэб сервер дээр PHP вэбсайтуудыг байршуулдаг. Вэб сервер болон Линукс дээр суурилсан үйлдлийн системүүд хоёулаа үнэ төлбөргүй байдаг бөгөөд энэ нь хостинг ашиглах нийт зардлыг бууруулдаг

    Байнгын хөгжил. PHP үргэлжлүүлэн хөгжиж, програмчлалын хэлийг шинэ сорилтод тохируулан шинэ функцуудыг агуулсан шинэ хувилбарууд гарч байна. Дүрмээр бол шинэ хувилбар руу шилжих нь тийм ч хэцүү биш юм.

    Одоогийн байдлаар (2017 оны 10-р сар) PHP-ийн одоогийн тогтвортой хувилбар нь PHP 7.1.

Одоо PHP хэл дээр анхны жижиг вэбсайтаа бүтээцгээе. Гэхдээ үүнийг үүсгэхийн өмнө бид вэбсайтыг хөгжүүлэхэд шаардлагатай бүх хэрэгслийг татаж аваад суулгах хэрэгтэй.

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

Оршил

Интернэт бидний амьдралд эрт дээр үеэс бат бэх суурьшсан. Энэхүү зоримог мэдэгдлийг олон удаа баталж, үгүйсгэж болох ч нэг талаараа бүх зүйл өөрчлөгдөж, хэн ч үүнтэй маргахгүй.

Олон тооны хувийн компьютер хэрэглэгчид дискний зайг хэмнэхийн тулд Internet Explorer програмыг бидний хайртай үйлдлийн системээс устгадаг байсан, учир нь тэдэнд хэрэггүй байсан юм. Интернет формат нь бидний компьютерийн амьдралын бусад хэсэгт аль хэдийн шилжсэн тул одоо вэбэд нэвтрэх эрхгүй хүмүүс ч гэсэн энэ програмд ​​хүрэхгүй байхыг хичээдэг. Хэрэв модем нь компьютерт суусан бол хөтчөөс зайлсхийх боломжгүй юм, учир нь та утасны шугамаас гадна юу байгааг ядаж нэг нүдээр харахыг үнэхээр хүсч байна уу? Нэгэнт танил болсон бол сүлжээний ашиг тусыг орхих нь тийм ч хялбар биш юм. Хэсэг хугацааны дараа та өөрийгөө болон санаагаа ямар нэгэн байдлаар хөрөнгө оруулалт хийж, Глобал Сүлжээний өргөн уудам талбарт өөрийгөө харуулах хэрэгтэй гэдгээ ойлгож эхэлдэг. Өөрийн гэсэн хуудас үүсгэх нь бүр нэр хүндтэй болсон бөгөөд үүн дотор ашиг тус багатай, лангуу нь таны байнга зочилсон зүйлсийг л бүртгэдэг ч таны хийсэн зүйл ноцтой төслийн эхлэл болж, амьдралыг бүхэлд нь өөрчлөх боломжтой.

Дэлхийн интернетийн өргөн уудам нутгаар аялахдаа та мэдээжийн хэрэг, заримдаа гаднаасаа маш том хэмжээтэй, хачирхалтай тэмдэгтүүдийг гайхшруулахад хүргэдэг гипер холбоосуудад анхаарлаа хандуулдаг. Мэдээжийн хэрэг, хүн бүр бөглөж, хариуд нь ямар нэгэн зүйл авах шаардлагатай маягтуудад анхаарлаа хандуулсан. Гэхдээ энэ бүхэн хэрхэн ажилладаг, юу гэсэн үг болохыг цөөхөн хүн боддог.

Би таныг програмчлалын ертөнцөд хөл тавихыг урьж байна. Энэ ертөнц олон талаараа бусадтай адилгүй ч өөрийн гэсэн бичигдээгүй хууль дүрэм, сайн муу талтай. Бидний өмнө нээгдэж буй ертөнц дахин нэг алхам л харагдах боловч энэ алхамыг эзэмшсэн байх ёстой, дараа нь цааш явахад илүү хялбар байх болно.

RNR-ийн түүх

Та үргэлж хамгийн энгийнээс эхлэх хэрэгтэй, одоо би танд PHP скрипт хэл дээр програмчлалын талаар танилцуулахыг хичээх болно. RHP (РНР гэж нэрлэдэг) 1994 оны намар төрсөн бөгөөд түүнийг бүтээгч Расмус Лердорф өөрийнх нь сайтад зочилдог хүмүүсийн тухай ойлголттой болохын тулд энэ хэлийг өөрийн зорилгоор ашигласан. үргэлжлүүлэх.

Зохиогчийн хэлснээр PNR нь ажил хэргийн уулзалтуудын хооронд нэг өдрийн дотор шууд утгаар бичигдсэн байдаг. Эхлээд энэ нь зүгээр л Perl хэл дээр бичигдсэн энгийн CGI бүрхүүл байсан бөгөөд энэ нь зөвхөн тодорхой зорилгоор үйлчилдэг байв. Лавлагааны хувьд - CGI (Common Gateway Interface) - нийтлэг гарц интерфэйс нь HTTP серверийн програмуудыг бий болгоход зориулагдсан стандарт юм.

Gateway буюу CGI програм гэж нэрлэгддэг энэхүү программыг сервер бодит цаг хугацаанд гүйцэтгэдэг. Сервер нь хэрэглэгчийн хүсэлтийг CGI програм руу дамжуулж, тэдгээрийг боловсруулж, ажлынхаа үр дүнг хэрэглэгчийн дэлгэц рүү буцаадаг.

Тиймээс зочин янз бүрийн хүчин зүйлийн нөлөөгөөр өөрчлөгдөж болох динамик мэдээллийг хүлээн авдаг. Гарц нь өөрөө (CGI скрипт) нь C/C++, Fortran, Perl, TCL, Unix Schell, Visual Basic, Apple Script болон бусад ижил төрлийн програмчлалын хэлээр бичигдэж болно. Харин PHP-ийн хувьд Перл хэлийг анхны хувилбараар нь бичихийн тулд хамгийн энгийн бөгөөд хүртээмжтэй хэлээр сонгосон.

Цаашдын мөлжлөгийн үр дүнд бүрхүүл нь бага гүйцэтгэлтэй байсан тул зохиогч бүх зүйлийг дахин бичихээс өөр аргагүй болсон боловч C хэлээр PHP-ийн хурдыг нэмэгдүүлэх боломжтой болсон. PHP-ийн анхны хувилбартай сайт байрладаг серверийн хэрэглэгчид ижил хэрэглүүрийг хүссэн бөгөөд зохиогч өөр хэн нэгэн энэ хэлийг ашигладаг гэж төсөөлөөгүй ч PHP маш хурдан бие даасан төсөл болон хөгжиж эхэлсэн. 1995 онд бидний мэддэг анхны бүтээгдэхүүний хувилбар гарсан. Энэхүү анхны багцын нэр нь Personal Home Page Tools юм. Тухайн үед RNR нь даруухан чадвараас илүү байсан. Энэ нь хэд хэдэн тусгай командыг ойлгодог энгийн код анализатор, зочны дэвтэр, тоолуур, чат, статистикийн систем гэх мэт хэрэгцээтэй зүйлсийг бий болгоход шаардлагатай нүүр хуудсанд ашиглах төрөл бүрийн хэрэгслүүдтэй байв. 1995 оны дундуур хэлийг сайтар шинэчилж, маягт боловсруулалт гарч, мэдээллийн сантай ажиллах функцүүд нэмэгдэж, бүтээгдэхүүний хоёр дахь хувилбарыг энэ хэлбэрээр гаргасан.

Өнөөдөр PHP нь сервер дээр байрладаг хүчирхэг хөндлөн платформ хэрэгслүүдийн багц бөгөөд HTML хуудсанд суулгагдсан тусгай кодыг боловсруулахад зориулагдсан. Үүний ачаар динамик сайтуудыг хялбархан үүсгэх боломжтой болсон. Ингэж үүсгэсэн файлууд серверт хадгалагдаж боловсруулагддаг бөгөөд зочин РНР-тэй баримт бичиг хүсэхэд скриптийг Java Script гэх мэт зочны хөтөч биш, харин сервер боловсруулдаг бөгөөд зөвхөн ажлын үр дүн гардаг. зочин руу шилжүүлдэг. C эсвэл Perl хэл дээр бичигдсэн CGI програм яг адилхан ажилладаг. Гэхдээ CGI-ээс ялгаатай нь PHP кодыг HTML хуудасны хаана ч суулгаж болох бөгөөд энэ нь CGI-ээс гол давуу тал юм. Үүнээс гадна PHP хэл нь өөрөө сурахад маш хялбар бөгөөд тодорхой мэдлэг шаарддаггүй. Жишээлбэл, миний хувьд арван жилийн өмнө тэр үед маш загварлаг, үнэтэй Yamaha-ууд дээр үндсэн хэл сурдаг сургуулийн компьютерийн шинжлэх ухааны хичээлд олж авсан туршлага надад хангалттай байсан. Ийм ягаан шинж чанартай хэдий ч PHP нь сул талуудтай. PHP скриптүүдийн нэлээд удаан (CGI програмуудтай харьцуулахад) ажиллагаа, мөн том, нарийн төвөгтэй програм бичихэд хүндрэлтэй байгааг тэмдэглэх нь зүйтэй. Ямар нэг байдлаар PHP нь орчуулагдсан хэл хэвээр байгаа бөгөөд энэ нь маш том, нарийн төвөгтэй програмуудын хувьд гүйцэтгэлийн бууралтад хүргэдэг, гэхдээ сайт дээр энгийн залруулга хийхэд PHP нь хамгийн сайн сонголт юм. 2000 оны дундуур РНР 2.5 сая гаруй сайтад ашиглагдаж байсанд гайхах зүйл алга!

PHP-ийн онцлог

Аливаа програмчлалын хэлний нэгэн адил PHP нь өөрийн гэсэн синтакстай байдаг. Энэ нь C эсвэл Perl-ийн синтакстай маш төстэй юм. Эдгээр хэлээр бичдэг програмистууд хэдхэн хоногийн дотор PHP хэлийг эзэмших боломжтой болно. Гэхдээ та хэзээ ч програмчилж байгаагүй ч РНР нь хэрэглэхэд хялбар бөгөөд илүү дэвшилтэт хэл рүү шилжих үндэс суурь болдог. Бүх тушаалууд нь нэлээд логик бөгөөд дүрэм нь энгийн. Синтакс нь цэг таслалаар тусгаарлагдсан мэдэгдлүүдийг агуулдаг. Шинэхэн програмистуудын гол алдаануудын нэг бол мэдэгдлийн хооронд цэг таслалгүй байх явдал юм. Аз болоход, PHP дээрх алдаанууд нь анхдагч байдлаар дэлгэцэн дээр гарч ирдэг (CGI-аас ялгаатай нь бүх алдаа нь бүртгэлийн файлд бичигддэг) бөгөөд бага зэрэг болгоомжтой, туршлагатай байж олох нь тийм ч хэцүү биш юм. Түүнчлэн ухаалаг орчуулагч алдаа гарсан шугамын дугаарыг танд хэлэх болно.

PHP дээр програмчлахын тулд танд ямар ч текст засварлагч хэрэгтэй болно, гэхдээ хялбар болгохын тулд энэ нь синтакс тодруулж, мөрийн дугаарлалт өгөх ёстой. Би сайн FTP менежер CuteFTP-ийн хамгийн сүүлийн хувилбаруудад багтсан CuteHTML-г ашигладаг. Редактор нь маш тохиромжтой, шаардлагагүй функцгүй, контекст цэсэнд суулгагдсан, суулгах шаардлагагүй, програмчлалд шаардлагатай бүх зүйлтэй. Мөн бидэнд 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-тэй тэнцүү биш бөгөөд тушаал нь $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. Хэрэв бид $QUERY_STRING параметрийг авч үзвэл холбоосын хоёр дахь хэсэг - patch/name.phtml - бидэнд боломжтой болно. Жишээ нь: $add = $QUERY_STRING. Одоо бүх зүйл автоматаар ажиллахын тулд үндсэн index.phtml файлаа өөрчилье. Хэрэв хүссэн параметрийг заагаагүй бол (зөв хэлэхэд энэ нь хоосон мөртэй тэнцүү байх болно) ямар нэг зүйлийг нээхийн тулд бид $add хувьсагчийг үндсэн хуудас болгон нээх файлын нэрийг өгнө. Үүнийг main.phtml файл болго. Дараа нь код дараах байдлаар харагдах болно.

...файлын эхлэл......файлын төгсгөл...

Таны харж байгаагаар энэ нь илүү хялбар юм. Гэхдээ энэ арга нь эхнийхээс хамаагүй хялбар боловч ийм бүтэцтэй сайт байрладаг серверийн талаар мэдээлэл авах замыг нээж өгдөг гэдгийг би нэн даруй анхааруулахыг хүсч байна. Халдагч эсвэл зүгээр л сониуч хүн тодорхой нөхцөл байдал, мэдлэгтэй бол таны серверийн талаар маш их зүйлийг олж мэдэх боломжтой бөгөөд энэ нь хакердах шууд замыг нээж өгдөг. Тиймээс болгоомжтой байгаарай, том асуудал үүсгэхгүй. Иймэрхүү асуудлаас өөрийгөө хамгаалах боломжтой, гэхдээ энэ нь огт өөр түүх юм.

PHP дээрх зочлох тоолуурын жишээ

Хэрэв та бүх зүйлийг анхааралтай уншсан бол мэдлэгийн эх үүсвэрийг хялбархан олж авах бөгөөд энэ нь танд ирээдүйд PHP хэлийг бие даан судлах боломжийг олгоно. Эцэст нь би танд скрипт кодтой танилцахыг санал болгож байна, энэ нь танай сайтын аль ч хуудсан дээр зочлох тоолуур зохион байгуулах боломжийг олгоно. Энэ тоолуур нь олон дутагдалтай тул бүрэн ажиллахгүй, гэхдээ PHP ашиглах жишээ болгон ашиглахад тохиромжтой. Өөрийн хуудасны аль ч хэсэгт (гэхдээ шаардлагатай бол) дараах кодыг оруулна уу:

Хуудасны зочдод -

Өөрийн хуудастай нэг директор дотор counter.dat файл үүсгэж, серверт байршуулж, FTP менежерээ ашиглан энэ файлын шинж чанаруудыг бичиж болохуйцаар өөрчил. Ерөнхийдөө та бүх файлын шинж чанарыг шалгах хэрэгтэй. Хэрэв та үүнийг хийхгүй бол скрипт нь файл руу бичихийг оролдох үед байнга алдаа гаргадаг. Дашрамд хэлэхэд, үүнээс урьдчилан сэргийлэхийн тулд та файлыг бичих, нээх командын өмнө @ тэмдэг тавих хэрэгтэй бөгөөд энэ нь зочны дэлгэцэн дээр алдаа гарсан тухай мессежийг цуцлах болно. Шинж чанаруудыг өөрчлөх үед сервер дээрх хуудсаа шинэчилж, хөтөч дээрх хаягаар нь хандана уу. Та PHP кодыг оруулсан газарт "Хуудасны зочдод -" гэсэн мөр гарч ирэх бөгөөд дараа нь зочилсон тоонд харгалзах тоо гарч ирэхийг харах болно. Мөн кодын ул мөр байхгүй! Үүнийг интернетийн сервер дээр боловсруулж, гүйцэтгэлийн үр дүнг зүгээр л хөтөч рүү дамжуулсан.

Энэ скриптийн алгоритм нь маш энгийн. Эхний мөрөнд бид сонгосон хувьсагчдаа зочилсон тоог хадгалах файлын нэрийг өгнө. Хоёрдугаарт, бид уншихын тулд энэ файлын холболтыг нээдэг. Дараа нь бид холболтын амжилтыг шалгаж, хэрэв файл байгаа бөгөөд унших боломжтой бол бид тоолуурт хангалттай 10 байт мөрийг уншиж, файлын холболтыг хаадаг. Бид тоолуурын уншилтыг нэгээр нэмэгдүүлж, түүний шинэ утгыг дэлгэц дээр харуулна. Дараагийн шатанд бид шинэ тоолуурын утгыг бичих шаардлагатай бөгөөд үүнийг хийхийн тулд бид файлтай холболтыг (тодорхойлогч) дахин нээх хэрэгтэй, гэхдээ файлын агуулгыг бичиж, цэвэрлэхийн тулд. Хэрэв энэ нь амжилттай бол бид тэнд шинэ тоолуурын утгыг бичиж, файлын тодорхойлогчийг хаадаг. Тэгээд л болоо.

Үүгээр бидний анхны РНР хэлтэй танилцсан үе өндөрлөж байна. Мэдээжийн хэрэг, маш олон хэрэгтэй, сонирхолтой зүйл үлдсэн боловч харамсалтай нь бүгдийг нэг дор багтаах боломжгүй юм. Гэсэн хэдий ч ийм учраас ухаалаг хүмүүс нэвтрэх боломжгүй зүйлийг хүртээмжтэй болгохын тулд Сүлжээг бий болгосон. Интернет дээр PHP сэдвээр маш их хэрэгтэй эх сурвалжууд байдаг бөгөөд хайлтын системийн хамгийн бага ур чадвараар та тэдгээрийг хялбархан олох боломжтой. Долоо хоногт нэг удаа шинэ нийтлэлүүд, жишээ скриптүүд тогтмол гарч ирдэг, асуулт хариултын хэсэг, түүнчлэн бусад олон хэрэгтэй мэдээллийг агуулсан PHP мэдээллийн товхимолд бүртгүүлэхийг би танд зөвлөж байна. Та захиалгын маягтыг олж, онлайн хаягаар бүртгүүлэх боломжтой.

Мэдээллийн товхимолын өмнөх бүх дугаарууд тэнд тавигдсан. Мөн хаяг дээрээс та энэ бүхэн хэрхэн ажиллаж байгааг харж болно. Энэ сайт дээр таны харж буй бүх зүйлийг PHP хийсэн. Чат, форум, хувийн зар сурталчилгаа, статистикийн систем - энэ бол PHP хэл дээр програмчлалын бидэнд олгодог боломжуудын зөвхөн багахан хэсэг юм.

PHP програмчлалын хэл

РНР хэлийг 1994 оны сүүлээр Расмус Лердорф зохион бүтээжээ. Эхний хувилбар нь 1995 онд "Personal Home Page Toolkit" нэрээр гарсан бөгөөд дараа нь түүнийг дахин боловсруулж PHP/FI хувилбар 2 (FI - маягт боловсруулах модуль) гэж нэрлэсэн. Мөн mSQL мэдээллийн сангийн дэмжлэг нэмэгдсэн. Энэ мөчөөс эхлэн сайн дурынхан бүтээн байгуулалтад оролцож эхэлсэн.

РНР хэрэглээний статистик нь ойролцоо боловч Netcraft-ын хийсэн судалгаагаар 2001 оны эхээр PHP нь дэлхий даяар 5,300,000 гаруй сайтад ашиглагдаж байжээ. Харьцуулбал: энэ үед IIS серверүүдийн тоо ойролцоогоор ижил байсан (5 сая). РНР хэлмэрчийг хөгжүүлэх нь зохион байгуулалттай багийн үйл явц хэлбэрээр явагдсан бөгөөд орчуулагчийн гол цөмийг Zend.com боловсруулсан. Гэсэн хэдий ч PHP нь чөлөөтэй тараагддаг: түүний хамгийн сүүлийн хувилбарыг PHP.net сайтаас татаж авах боломжтой. PHP модулиудыг Apache сервер болон Линукс системийн иж бүрдэлд нийлүүлдэг.

Эхэндээ PHP товчлол нь Нүүр хуудасны өмнөх процессор - home page preprocessor гэсэн үг юм. Энэ нь HTML хуудсанд суулгагдсан, сервер дээр ажилладаг скриптүүдийн хэл юм. Ихэнх тохиолдолд түүний синтаксийг C, Perl, Java гэх мэт хэлнээс авсан бөгөөд үүнтэй зэрэгцэн эдгээр хэлэнд дутагдаж буй олон шинж чанарууд нэмэгддэг. Энгийнээр хэлбэл, PHP-ийн синтакс нь C хэлний хатуу байдал болон Perl-ийн "хязгааргүй байдал"-ын аль алиных нь ухаалаг хувилбар юм.

РНР нь вэб программистуудын мөрөөдөж байсан бараг бүрэн цогц функцээр хангагдсан (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 хэлийг программист Ларри Уолл бүтээсэн бөгөөд практик олборлолт ба тайлангийн хэл гэсэн үг юм. Үүнийг "практик өгөгдөл гаргаж авах, тайлагнах хэл" гэж орчуулж болно. Perl бол орчуулагч бөгөөд вэбээс өмнө бий болсон. Интернет бий болсноор Perl нь динамик вэб хуудас үүсгэхэд тохиромжтой хэрэгсэл болж хувирав. Perl нь бүх вэб сервер дээр байдаг тул өргөн тархсан, учир нь тэдгээр нь бараг бүгдээрээ UNIX ажиллуулдаг бөгөөд үүнээс өөр хувилбар нь PHP нь Perl-тэй төстэй функцуудыг санал болгодог ч илүү төвөгтэй Си хэл байсан юм. синтаксийн харьцангуй хялбар байдал, харьцангуй бага нөөцтэй. Перл хэлний илүүдлийн шалтгаан нь түүнийг маш олон төрлийн хэрэглээнд зориулж бүтээсэн бөгөөд энэ нь түүний синтаксэд нөлөөлөхгүй байх боломжгүй байсан бол PHP нь анх интернетэд зориулагдсан юм. PHP болон Perl хэлийг анх мэддэггүй байсан олон хэрэглэгчдийн үзэж байгаагаар PHP сурах нь илүү хялбар байдаг.

2. PHP болон Java програмчлалын хэл

Ерөнхийдөө Java хэл болон Java технологийн хооронд ялгаа бий. Жава хэл нь "сайжруулсан 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 Intermediate Language (MSIL) болгон хөрвүүлдэг бөгөөд үүнийг заримдаа IL гэж нэрлэдэг. Техник хангамжаас хамааралгүй IL код нь Java байт кодтой адил гүйцэтгэлийг сайжруулахын тулд вэб серверт хадгалагддаг. Гэхдээ платформын бие даасан байдлыг хангадаг Java технологиос ялгаатай нь NET нь хөгжүүлэлтийн хэлнээс хараат бус байдлыг хангадаг. Windows бус сервер дээр ASP.NET вэб програмуудыг ажиллуулах нь бараг боломжгүй юм. Түүнчлэн, хэрэв вэб програм нь NET бүрэлдэхүүн хэсгүүдийг ихээр ашигладаг бол динамик хуудсыг зөвхөн Windows үйлдлийн систем дээр, зөвхөн Internet Explorer хөтөч ашиглан үзэх боломжтой. Тиймээс зөөврийн хувьд PHP нь ASP.NET-ээс илүү сайн талдаа ялгаатай. PHP-ийг дэмжсэн өөр нэг чухал аргумент бол илрүүлсэн алдааг хурдан засах явдал юм. Онолын хувьд, хэрэв та хангалттай ур чадвартай бол тэдгээрийг өөрөө засах боломжтой. Та мөн хөгжүүлэгчид рүү захидал бичиж болох бөгөөд өндөр магадлалтайгаар дараагийн хувилбарт алдаа засах болно. Мөн PHP хувилбарууд нь маш олон удаа гардаг. PHP-ийн өөр нэг давуу тал, ялангуяа эхлэгчдэд чухал ач холбогдолтой нь вэб програм бүтээхэд ашиглахад хялбар байдаг. Тиймээс, ASP.NET болон PHP хоёрын аль нэгийг сонгохдоо та одоо байгаа даалгавраа үргэлжлүүлэх хэрэгтэй. Хэрэв томоохон корпорацийн дотоод сүлжээнд ихэнх серверүүд болон клиент машинууд Windows ажиллуулдаг бол ASP ашиглана уу. NET нь илүү үндэслэлтэй юм. Үүний зэрэгцээ интернетэд байршуулсан вэб сайтыг хөгжүүлэхийн тулд РНР ашиглах нь илүү тохиромжтой.

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 дээр статик аргуудыг static түлхүүр үг ашиглан тодорхой зарлах боломжтой болсон.

7. PHP 5.0 нь PHP 4.0-д байхгүй байсан онцгой тохиолдлуудыг зохицуулах механизмыг нэвтрүүлсэн. Тиймээс объектын загварт ийм шинэлэг зүйл хийсний үр дүнд PHP 5.0 нь бүрэн мэргэжлийн програмчлалын хэл болсон бөгөөд энэ нь түүнийг ямар ч нарийн төвөгтэй байдлын асуудлыг шийдвэрлэхэд ашиглах боломжийг олгодог.

РНР хэл нь хамгийн алдартай програмчлалын хэлнүүдийн эхний байранд ордог ч бүх зүйл төгсгөлтэй байдаг. РНР мартагдах аюултай юу, түүнийг юу орлох вэ, Facebook шиг сайт үүсгэхийн тулд та ямар хэлийг сонгох вэ? Эдгээр асуултад Quora вэб сайтын хэрэглэгчид хариулсан.

Жорж Мауэр, JS заадаг

PHP үхэж байна, Java үхэж байна, C# үхэж байна, SQL үхэж байна, JavaScript үхэж байна, C үхэж байна. Гэсэн хэдий ч жагсаалтад ороогүй бүх програмчлалын хэл дээрх төслүүдээс хамаагүй олон төсөл эдгээр хэл дээр байдаг. Тийм ээ, заримдаа шинэ чиг хандлага нь тогтсон зүйлийг халж чаддаг ч энэ үйл явц маш удаан явагддаг. Энэ нь хамгийн ахмад нь муу гэсэн үг биш юм.

PHP бол Facebook үүсгэх хамгийн сайн сонголт байсан гэдэгтэй би санал нийлэхгүй байна. Энэхүү нийгмийн сүлжээг бүтээгчид PHP-ийг зөвхөн хэсэгчлэн ашигладаг. Өнөө үед энэ хэлний оронд өөрсдийн гэсэн Hack хэмээх аялгуутай болсон гэж хэлж болно. PHP бол Зукерберг болон бусад хөгжүүлэгчид энэ төсөл дээр ажиллаж эхэлсэн хэл юм.

Энэ нь PHP нь тийм ч муу сонголт байсан гэсэн үг биш юм. Гэсэн хэдий ч энэ нь програмыг хурдан хөгжүүлэх шаардлагыг хангасан хэл юм. Энэ нь эргээд стартапын гол хүчин зүйлүүдийн нэг юм - Facebook-ийн хувьд энэ хүчин зүйл шийдвэрлэх үүрэг гүйцэтгэсэн. Эхэндээ PHP нь нэг төрлийн скриптүүдийн цуглуулга байсан. Энэ нь хийсвэрлэлийн доод түвшинд шилжихэд хялбар болгож, оновчлол хийх шаардлагатай үед C кодыг бий болгодог. Энэ бүгдийг сайтар судалж, орчин үеийн ихэнх хэл дээр амжилттай хэрэгжүүлсэн.

Нийгмийн сүлжээ нь програмчлалын хэлнээс тодорхой зүйлийг шаарддаг гэсэн санааг толгойноосоо зайлуул. Ихэнх код үүсгэх нь бүрэн стандарт, танил байх болно. Тийм ээ, таамаглаж буй болон боломжит найзуудтай таарах гэх мэт асуудалтай асуудлууд байдаг ч үүнтэй төстэй асуудлуудыг ихэвчлэн тусгай програм хангамжийн тусламжтайгаар шийддэг. Жишээлбэл, графикт чиглэсэн мэдээллийн сан. Та системээ бүтээхдээ маш болгоомжтой, болгоомжтой байх хэрэгтэй, мөн DevOps-ийн талаар сайн ойлголттой байх хэрэгтэй, гэхдээ бусад хэлтэй ижил зүйлийг хийх шаардлагатай болно. Таны хувьд төгс хөгжлийн хэлтэй байхаас илүү туршлагатай, мэдлэгтэй хөгжүүлэгчид чухал.

Энэ нь үнэн хэрэгтээ намайг асуудлын голд хүргэж байна. PHP нь маш олон тооны мэргэжилтнүүд үүнийг сайн мэддэг учраас л маш сонирхолтой юм. Гэхдээ та эдгээр мэргэжилтнүүдийн аль нь ч таны стартап дээр ажиллахыг хүсэхгүй байх магадлалтай. Та хэд хэдэн хэлээр ярьдаг хүмүүсийг, зөв ​​төлөвшсөн, мэдээлэлтэй ертөнцийг үзэх үзэлтэй хүмүүсийг ажилд авахыг хүсэх болно. Мөн эдгээр хүмүүсийн ихэнх нь PHP-д үнэхээр дургүй байдаг.

Төсөөлөөд үз дээ: Би дөнгөж бүртгүүлсэн гарааны бизнесээ хөгжүүлэхээр түрээсэлсэн цоо шинэ оффист суугаад, төслийг хөгжүүлэхэд зориулж авсан бөөн мөнгөөр ​​ширээгээ ширтэн, ямар програмчлалын хэл сонгох талаар толгойгоо гашилгаж байна. Энэ бол миний ирээдүйн бизнесийн амжилт эсвэл бүтэлгүйтлийг тодорхойлох зүйлсийн жагсаалтын 250 орчимд байгаа асуудал гэдгийг би ойлгож байна. Мөн энэ шийдвэрийг хөгжүүлэх багтай хамтран гаргах хэрэгтэй гэдгийг би ойлгож эхэлж байна, надад одоогоор байхгүй байна. Тиймээс би өөрөө харьцангуй өргөн тархсан, хөгжүүлэгчдэд хийсвэрлэлийн доод түвшинд шилжих боломжийг олгодог хэлний сонголтуудыг хайж эхэлж байгаа бөгөөд хамгийн чухал нь бизнестээ хамгийн шилдэг нь танил хөгжүүлэгчидтэй байх болно.

Одоогийн байдлаар ийм хэл бол Elixir юм. Энэ нь Beam виртуал машин дээр суурилсан бөгөөд хэдэн арван жилийн туршид хэд хэдэн төслүүдэд өөрийгөө нотолсон Эрлангийн хэлтэй нэлээд ойрын хамаатан юм. Нэмж дурдахад энэ хэл нь зүгээр л төсөөлшгүй гүйцэтгэлийн үр дүнг харуулдаг.

Өөр нэг гайхалтай сонголт бол Go. Энэ нь үндсэндээ доод түвшний хэл боловч дээд түвшний хэлээр хийж болох бүх зүйлийг хийж чадна. Хэдийгээр түүний бүтэцтэй холбоотой зарим шийдвэр надад таалагдахгүй байгаа ч энэ нь ямар нэг байдлаар анхаарал хандуулах ёстой.

Өөр нэг сонголт бол Clojure байх болно. Энэ хэлийг хөгжүүлэгчид олоход тийм ч хялбар биш байх магадлалтай, гэхдээ энэ хэл нь LISP-ийн шууд удам гэдгийг харгалзан үзвэл энэ нь гайхалтай хүчирхэг бөгөөд хөгжүүлэх олон сонголтыг өгдөг гэж би шударгаар хэлж чадна.

Хэд хэдэн чухал тэмдэглэл:

  • .Net фреймворк дээрх F# эсвэл хаа сайгүй байдаг 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 кодыг HTML тэмдэглэгээний аль ч хэсэгт шууд нэмдэг. HTML тэмдэглэгээ нь өөрөө огт байхгүй байж болох бөгөөд хуудасны эх кодыг зөвхөн 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.

Илүү elseif бүтэцтэй if хэллэгийн өөр хувилбар. Мэдэгдлийг гүйцэтгэх нь утга нь илэрхийллийн утгатай тохирч байгаа тохиолдлын хэсгээс эхэлж, завсарлах командтай тулгарах хүртэл дараагийн бүх тохиолдлуудад үргэлжилнэ - бүрэн гүйцэтгэл. Өгөгдмөл хэсэг нь нөхцөлт мэдэгдлийн else хэсгийн өөр хэсэг юм.

Солих ( илэрхийлэл) (тохиолдол утга 1: оператор 1; хэрэг үнэ цэнэ 2: оператор 2; хэрэг үнэ цэнэ 3: оператор 3; анхдагч: анхдагчаар гүйцэтгэгдсэн оператор; ) хийх гогцоо бие; байхад ( нөхцөл);

Үүнтэй ижил жишээ:

$i=2; $f=1; хийх ( $f=$f*$i; $i++; echo $i,"!=",$f,"
"; ) байхад ($i<10);

талаар дэлгэрэнгүй мэдээлэл хийх ... while давталтунших.

Массив эсвэл foreach оператор дахь элементүүдийн дундуур давталт хийх

Массивуудын талаар тусад нь цөөн хэдэн үг хэлэх бөгөөд доор нь түүний элементүүдийг давталтаар давтахад зориулагдсан бүтэц юм.

Тус бүр ( массивдоллар шиг бүрэлдэхүүн) $element хувьсагчаар бид ямар нэг зүйл хийдэг илэрхийлэл;

$утга = массив("for", "while", "do", "foreach"); echo "PHP дэх гогцоо:","
"; foreach ($operator гэсэн $утга) echo $operator,"
";

PHP дэх гогцоонууд болон сонголтын операторууд болон бусад олон програмчлалын хэл дээрх зааварчилгааг дэмждэг завсарлага– мөчлөгийг эрт дуусгах ба үргэлжлүүл– мөчлөгийн одоогийн давталтыг эрт дуусгах (мөчлөгийн эхэнд шилжих). Тэдний тухай дэлгэрэнгүй уншина уу.



Хуваалцах