PHP

PHP (ინგლ. PHP: Hypertext Preprocessor) — პროგრამირების ენა, რომელიც თავისი ოპერატორებით PHP კოდს, ბრაუზერში გარდაქმნის HTML და XHTML კოდად. ბრაუზერის მისამართების პანელში საიტის გამოძახებისას სახელწოდების ბოლოს php დაბოლოება ნიშნავს იმას, რომ მოცემული საიტი შექმნილია PHP კოდით. ბრაუზერში გვერდის ვებ-კოდების მოთხოვნისას, არ გამოჩნდება PHP კოდი, გამოჩნდება მხოლოდ HTML კოდი. ეს ტექნოლოგია პროგრამირებაში ახალი არაა და იგი ჯერ კიდევ PERL -ში გამოიყენებოდა, რომლისაგანაც წარმოიშვა PHP. 1994 წელს რასმუს ლერდორფმა, რომელსაც სურდა ხსენებული ხერხის განხორციელება ბრაუზერში, შექმნა პირველი ვერსია, რომელიც ამავე წელს გამოაქვეყნა, სახელწოდებით Personal Homepage Tools. პირველი ვერსია მალე გადამუშავდა და მას ოფიციალურად დაერქვა PHP.


PHP: Hypertext Preprocessor
ჩვეულებრივი ფაილის გაფართოება .php, .phtml, .php3, .php4, .php5, .phps
თარიღი 1995; 29 წლის წინ (1995)[1]
კონსტრუქტორი რასმუს ლერდორფი
დამამზადებელი The PHP Group
უკანასკნელი გამოშვება 5.6.12[2]/ 6 აგვისტო, 2015; 8 წლის წინ (2015-08-06)
ტიპირების დისციპლინა დინამიური, სუსტი
ძირითადი რეალიზაციები Zend Engine, HHVM, Phalanger, Quercus, Project Zero, Parrot
იყო ზეგავლენილი Perl, C, C++, Java, Tcl[1]
ზეგავლენა მოახდინა Hack
OS ჯვარედინ პლატფორმიანი, იუნიქსისავით, Windows, სხვა 32 და 64 ბიტიანი პლატფორმები
ლიცენზია PHP-ს ლიცენზია (Zend-ის სისტემა - Zend-ის სისტემის ლიცენზია)
საიტი php.net
Wikibooks logo PHP ვიკიწიგნებში

შესავალი PHP-ში

არცთუ დიდი ხნის წინ Web-კვანძებიდან მომხმარებელს ადგილზეძირითადად სტატიკური HTML-ფაილები გადმოეცემოდა, რომელთაც იგიბროუზერის მეშვეობით მხოლოდ კითხულობდა. დღეს კი WEB-სივრცეშიუმეტესწილად დინამიკური Web-ფურცლები ანუ DHTML-ფაილებიგადაიგზავნება. მათი აწყობა ხდება Web-კვანძების სერვერზეგანთავსებული WEB-პროგრამების გაშვებით, რასაც მომხმარებელიახორციელებს საკუთარი კომპიუტერიდან სისტემასთან დიალოგში.ინტერნეტში პროგრამების შექმნისათვის დღეს ყველაზეპოპულარული WEB-დაპროგრამების ენა არის PHP4. იგიგანსაკუთრებით აადვილებს სერვერებზე განლაგებულ მონაცემთაბაზებთან ურთიერთობას.დასაწყისში PHP შეიქმნა, როგორც მაკროსებისკრებული, მარტივი სახის პირადი WEB-ფურცლების ფორმირებისთვის.შემდეგ კი იგი იქცა სრულფასოვან დაპროგრამების ენად, რომელზეცდაწერილი კონსტრუქციები ჩაიდგმება სერვერზე მოთავსებულ HTML-ტექსტებში. WEB-ფურცლის გამოძახებისას PHP-ის პრეპროცესორის მიერადგილზე ხდება ამ კონსტრუქციების (პროგრამული ფრაგმენტების)დამუშავება და HTML-ის არსებულ ფრაგმენტებს შორის ჩაემატებაშესაბამისი ინფორმაცია, მაგალითად, ბაზიდან ამოღებული მონაცემები,სერვერზე კონსტრუირებული გრაფიკული გამოსახულებები და სხვ.PHP-ის ვერსია - PHP4(5) - მისაერთებელი მოდულის სახითკომპილირდება დღეისათვის ყველაზე პოპულარულ WEB-სერვერ-პროგრამაApache-სთვის. სერვერზე PHP-პროგრამები უმეტესწილად ურთიერთობენMysQL მონაცემთა ბაზასთან (რომელიც უფასოდ ვრცელდება). ასე რომ,APACHE, MySQL და PHP ტრიადას დღევანდელ დღეს კონკურენტი არ ჰყავს.თუმცა, ცხადია, PHP-ს მუშაობა შეუძლია სხვა WEB-გარემოში და სხვაბაზებთანაც.საერთოდ, PHP-პროგრამებს ინტერპრეტატორი ამუშავებს, მაგრამშესაძლებელია მათი კომპილირებაც (თუმცა ეს შესაძლებლობა მხოლოდკომერციული დამატების სახით არსებობს), რაც კიდევ უფრო ამაღლებსსისტემის მწარმოებლურობას.CGI-სთან შედარებით PHP-ს ის მნიშვნელოვანი უპირატესობაგააჩნია, რომ მისი ინტერპრეტატორი ფუნქციონირებს სერვერთან მჭიდროინტეგრაციის პირობებში საჭირო არ არის თითოეული პროგრამისშესრულებისას სისტემის ხელახლა გაშვება, რაც მნიშვნელოვნადამაღლებს მუშაობის სისწრაფეს.PHP-ს რიგი სხვა ღირსებებიც გააჩნია:• პროდუქტის ღიაობა;• პროგრამების დაწერის გაადვილება HTML-ტექსტისა და თვითპროგრამული ნაწილის განცალკევების გამო;• პროგრამების ერთი ოპერაციული სისტემიდან სხვაში გადატანისსიმარტივე;• პროგრამების შესრულების საკმარისი სისწრაფე.

დაყენება

PHP-ს უფასოდ ჩამოტვირთავთ მისი ოფიციალური საიტი კვანძიდან. მისამართზე შესაძლებელია პროდუქტისშესახებ უახლესი, ამომწურავი ინფორმაციის მიღება.შევისწავლოთ, როგორ ხდება PHP-ის დაყენება APACHE WEB სერვერთან სამუშაოდ, კომპიუტერის მართვისას ლინუქსი ოპერაციული სისტემის მიერ. (საერთოდ, შესაძლებელია APACHE-სთან უკვე მიერთებულიPHP-ის ვარიანტის მოძიებაც, მაგრამ როცა ამ პროცესს თვითონვახორციელებთ, არჩევანი უფრო ფართო ხდება ამ შემთხვევაშიპარამეტრებს ენიჭება მნიშვნელობებს).სისტემაში PHP-ის დაყენების უფლება მხოლოდ ადმინისტრატორს(სუპერმომხმარებელს) აქვს. PHP-ის, როგორც APACHE-სთვის მოდულის,კომპილირება ორი გზით შეიძლება განხორციელდეს:

  • პირველი გულისხმობს Apache-ის ხელახლა კომპილაციას მასთან
  • PHP-ის სტატიკურად მიერთებით (ლინკირებით);
  • მეორე გზა ითვალისწინებს მხოლოდ PHP-ის კომპილაციას,

ოღონდ მანამდე უნდა განხორციელდეს APACHE-ის კომპილაციაDSO რეჟიმში (Dynamic shared object - საერთო სარგებლობისდინამიური ობიექტს აღნიშნავს). სწორედ, ამ რეჟიმითვისარგებლებთ PHP-ის კომპილირებისას. ეს გზა PHP-ისდაყენების უფრო მარტივი ხერხია და ჩვენც მას განვიხილავთ.იმის შესამოწმებლად, უზრუნველყოფს თუ არა Apache აღნიშნულრეჟიმში მოდულების მიერთებას, საჭიროა შესრულებაზე გავუშვათ httpdფაილი -1 ალმით:

/www/bin/httpd -1

გამოდის მოდულების სია. თუ მასში ფიგურირებს mod_so.c,დავასკვნით, რომ DSO რეჟიმში მუშაობა შესაძლებელია (წინააღმდეგშემთხვევაში მოგვიწევს Apache-ის ხელახლა კომპილირება).PHP4-ის ჩამოტვირთვის შედეგად განკარგულებაში გვეძლევა გზიპუტილიტით შეკუმშული Php-4.0.4pll.tar.gz დისტრიბუტიული ფაილი.მისი გაშლა შემდეგი ბრძანებით ხდება:

tar -xvzf php-4.0.4pll.tar.gz

გადავდივართ PHP-დისტრიბუტივის კატალოგში:

pd../php-4.0

შესრულებაზე ვუშვებთ აღნიშნულ კატალოგში არსებულ ცონფიგურეპროგრამას პარამეტრებისათვის ყველაზე უფრო მიღებულიმნიშვნელობების მინიჭებით:

./configure --enable-track-vars \--with-gd \--with-mysql \--with-apxs=/www/bin/apxs

ბოლო მნიშვნელობა იმ კატალოგზე მიუთითებს, რომელშიც ApacheWeb-სერვერია დაყენებული, myspl ბაზისთვის კი იგულისხმება, რომ იგიდუმილით გათვალისწინებულ კატალოგშია დაყენებული. მაგრამ თუკი ესასე არ არის, საჭიროა ამ განსხვავებული კატალოგის შესახებინფორმაციის გათვალისწინებაც:

 --with-mysql=/path/to/dir

configure პროგრამის შესრულების შემდეგ ვუშვებთ მაკე უტილიტას.კომპიუტერზე დაყენებული უნდა იყოს C ენის კომპილატორი.

Apache სერვერი

Apache-სერვერის კატალოგის conf-ქვეკატალოგში მოვძებნითhttpd.conf ფაილს და დავუმატებთ მას შემდეგ სტრიქონებს:

AddType application / x-httpd-php .phpAddType application / x-httpd-php-source .phps

ეს ნიშნავს, რომ PHP-ინტერპრეტატორი .php გაფართოების ფაილებსდაამუშავებს როგორც პროგრამებს, ხოლო .phps გაფართოების მქონეთ _როგორც გაფერადებულ HTML-ტექსტს.php.ini ფაილის მეშვეობით კი შესაძლებელია PHP-ის პარამეტრებისშეცვლა უკვე მისი კომპილირების და დაყენების შემდეგ. UNIX ამ ფაილსინახავს /usr/local/lib ბ კატალოგში, ხოლო ვინდოუს ოპერაციული სისტემა -ვინდოუს-ში.შესაძლებელია ამ ფაილის მიმდინარე კატალოგში განთავსებაც.მაშინ მას ექნება ლოკალური მოქმედების არეალი. ჯერჯერობით კი ჩვენვკმაყოფილდებით ამ ფაილის პარამეტრებისთვის მინიჭებული სტანდარტული მნიშვნელობებით.php.ini ფაილში შეიძლება მნიშვნელობის განსაზღვრა შემდეგიდირექტივისთვისაც: short_open_tag=On (True,Yes), რაც უზრუნველყოფსphp-ბლოკების გაფორმებას <?Bბლოკი ?> სახით. ამ შესაძლებ-ლობისGგამორთვა ხორციელდება დირექტივისთვის Off (False,Noმნიშვნელობის მინიჭებით.თუ ჭებ-ფურცლების ფორმირებისათვის XML-ენასაც ვიყენებთ, მაშინამ ე.წ. მოკლე ტეგების გამოყენება ზემოთ აღნიშნული ხერხითვე უნდაავკრძალოთ და ვისარგებლოთ მხოლოდ სტანდარტული ტეგებით:<?php?>

Hello World

პირველი პროგრამა PHP-ზებლოკონტ-ტექსტში აკრიფეთ შემდეგი ტექსტი:

<?phpprint “Hello Web!”;?>

ფაილი დაიმახსოვროთ first.php სახელით.თუ სერვერზე არ ვმუშაობთ, მოგვიხდება FTP-სერვისით ფაილისმასზე გადაგზავნა (კოპირება). შემდეგ კი ამ ფაილს შეიძლება მიმართოთ ბრაუზერიდან. ეკრანზე აისახება წარწერა:Hello web! მაგრამ თუკი სერვერზე PHP დაყენებული არ არის, ანდა ფაილისგაფართოება არასწორად იქნა განსაზღვრული, მაშინ მოსალოდნელიაეკრანზე გამოვიდეს შემდეგი ტექსტი:

<?phpHello Web!?>

print() წარმოადგენს ფუნქციას თქვენ მიერ დაწერილ უმარტივესპროგრამაში. თუ მას ეკრანზე სტრიქონი გამოჰყავს, მაშინ ეს სტრიქონიბრჭყალებში უნდა ჩაისვას (დასაშვებია ერთმაგი ბრჭყალებიც).იცით, რომ ფუნქციის არგუმენტები ფრჩხილებში უნდა მოთავსდეს.პრინტ ფუნქცია კი ამ მხრივ გამონაკლისია - დასაშვებია მის მიერგამოსაყვანი ინფორმაცია ფრჩხილებში არ მოაქციოთ.print() ფუნქციის ანალოგიური ფუნქციაა echo() რომელიც გამოიყენება ზუსტად print() ფუნქციის მსგავსად მაგრამ ერთადერთი გასხვავება ამ ორ ფუნქციას შორის არის ტექსტის მონიტორზე გამოტანის სისწრაფე.ამ მხრივ echo() ფუნქცია print() ფუნქციაზე წინაა,თუმცა სისწრაფეში განსხვავება არც თუ ისე დიდია,მეტიც,მისი შემჩნევა ძალზედ რთულია ამიტომაც echo() ფუნქცია შეიძლება ითქვას რომ print() ფუნქციის სრული ანალოგია.PHP-ინსტრუქციები წერტილ-მძიმით უნდა დაბოლოვდეს. გამონაკლისსშეიძლება წარმოადგენდეს ბლოკში ბოლო ინსტრუქცია, თუმცა ესრეკომენდებული არ არის (საეჭვო შემთხვევებში შეიძლება ასეთმაგადაწყვეტილებამ ინტერპრეტატორი შეცდომაში შეიყვანოს).ისევე, როგორც ჯავასკრიფტი-ის სცენარები, PHP-ინსტრუქციებისბლოკებიც შეიძლება უშუალოდ HTML-ტექსტში განლაგდეს:ლისტინგი 1

<html><head><title> HTML-ის და PHP-ის კავშირი! </title></head><body><?phpprint  “წინ, პროგრამირებაში ახალი მწვერვალების დასაპყრობად!”;?></body></html>

.

ასევე შესაძლებელია php ფაილში HTML კოდის ჩაწერაც, მაგრამ მისი პირდაპირი ჩაწერა php ფაილში გამოიწვევს შეცდომას

<?php<b>html</b>?>

ასეთი ჩანაწერი შეცდომაა, რადგან php ფაილში HTML კოდი საჭიროა print ან echo ბრძანებაში მოექცეს, რათა იგი ბრაუზერმა სწორად და გასაგებად აღიქვას.ზემოთ მოცემული მაგალითის სწორი ვარიანტი იქნება ასეთი სახის:

<?phpprint "<b>html</b>";?>

HTML კოდები უნდა ჩაიწეროს ჩვეულებრივი ტექსტის მსგავსად print ბრძანებაში

ცვლადები

ცვლადებიPHP-ში ცვლადის სახელი $ სიმბოლოთი იწყება! მომდევნოპოზიციებზე კი შეიძლება გამოიყენოთ ლათინური სიმბოლოები, ციფრებიდა ხაზგასმის ნიშანი. სხვა სიმბოლოების, მათ შორის ხარვეზის(ცარიელი არის) გამოყენება არ დაიშვება. მოვიყვანოთ ცვლადებისსწორად დასახელების მაგალითები:

$ a$ a_b_c$ b555

ცვლადებს ენიჭებათ მნიშვნელობები. მნიშვნელობები დაშესაბამისად ცვლადებიც სხვადასხვა ტიპის შეიძლება იყოს. კერძოდ,ცვლადებში დასაშვებია შევინახოთ: რიცხვები, სიმბოლოთა სტრიქონები,ობიექტები, მასივები, ლოგიკური მნიშვნელობები...როგორც წესი, ცვლადის შექმნა და მისთვის მნიშვნელობის მინიჭებაერთსა და იმავე ინსტრუქციაში ხდება, მაგალითად:

$num1 = 8;$name = “ანდრია”;

ინსტრუქციებში მნიშვნელობამინიჭებული ცვლადის გამოყენება,ფაქტობრივად, ამ მნიშვნელობის გამოყენებაა. მაგალითად, გამოსახულება

print $num1;

ეკრანზე გამოიყვანს იმავე ინფორმაციას (8), რასაც - გამოსახულება

print 8;

აგრეთვე შესაძლებელია ცვლადების შეერთება რათა კოდი არ გადაიტვირთოს ზედმეტი echo ან print ბრძანებებით.ცვლადების შესაერთებლად გამოიყენება "." წერტილი.მაგალითად:

<?php$saxeli="გოგიტა";$asaki=15;print "თქვენი სახელია ".$saxeli." და თქვენ ხართ ".$asaki." წლის";?>

მოცემულ მაგალითში $saxeli და $asaki ორივე მხრიდან წერტილითაა გამოყოფილი ტექსტისგან რადგან მათ ორივე მხრიდან უერთდებათ ტექსტი ამიტომაც ასეთ შემთხვევებში საჭიროა ცვლადების ორივე მხრიდან გამოყოფა,ხოლო თუ სტრიქონი სრულდება არა ტექსტით არამედ ცვლადით ამ შემთხვევაში ცვლადი ტექსტისგან მხოლოდ ერთი წერტილით(რომელიც ექნება იმ მხრიდან რომელი მხრიდანაც უერთდება ტექსტი) გამოიყოფა რადგან მას აღარ მოსდევს ტექსტი

მუშაობა HTML ფორმებთან

ტექსტური ფორმები

PHP-ს შესწავლისას მნიშვნელოვანია HTML ფორმებთან მუშაობის პრინციპების შესწავლა.HTML ფორმები PHP-ს გარეშე არანაირ შედეგს არ იძლევა,საჭიროა შესწავლა იმისა თუ როგორ შეიძლება გამოყენებულ იქნეს HTML ფორმები PHP ენით.

მაგალითი 1:

<html><head></head><body><form action="send.php" method="post">სახელი:<input type="text" name="saxeli"><br>ტექსტი:<textarea name="text"></textarea><br><input type="submit" value="გაგზავნა"></form></body></html>

მოცემული მაგალითი არის უმარტივესი HTML ფორმა და მისი განხილვა საჭირო არარის თუმცა ყურადღება უნდა მიექცეს input ველების სახელწოდებებს ანუ name ატრიბუტის მნიშვნელობებს.მოცემული HTML კოდს სჭირდება PHP ფაილი რომელსაც ფორმებიდან მიღებული მონაცემები გაეგზავნება და დამუშავდება სურვილისამებრ.ახლა უნდა შეიქმნას PHP ფაილი სახელწოდებით send.php შემდეგი შიგთავსით:

<?php$saxeli=$_POST['saxeli'];$text=$_POST['text'];echo "გამარჯობა ".$saxeli."<br>თქვენი ტექსტია ".$text;?>

მაგალითად,თუ პირველ ფორმაში(სახელი) შეყვანილია "გოგა" და მეორეში(ტექსტი) -"სალამი",მაშინ მონიტორზე გამოვა ტექსტი:

გამარჯობა გოგათქვენი ტექსტია სალამი

$_POST არის მარტივად რომ ვთქვათ ფუნქცია PHP-ში რომელიც იღებს HTML ფორმიდან POST მეთოდით გაგზავნილ მონაცემებს.POST მეთოდის გარდა ასევე არსებობს GET მეთოდი რომელსაც აქვს მონაცემების ზომის ლიმიტი და მას არ შეუძლია გადასცეს ნებისმიერი სიგრძის მონაცემი PHP ფაილს და ამავე დროს GET მეთოდით გაგზავნილი მონაცემები ბრაუზერის მისამართის ველში აისახება,ხოლო POST მეთოდის გამოყენებას არცერთი ზემოთ ხსენებული მოვლენა არ ახლავს თან.გარდა ამისა არსებობს მესამე მეთოდიც რომელსაც $_REQUEST ასეთი სახით იყენებენ და მას შეუძლია HTML ფორმიდან მიიღოს როგორც POST ასევე GET მეთოდით გადაცემული მონაცემები მაგრამ მისი როგორც მეთოდოს გამოყენება ასეთი სახით

<form method="request">

არ შეიძლება რადგან იგი მხოლოდ მონაცემების მისაღებად გამოიყენება . REQUEST მეთოდი ზუსტად ისეთივე პრინციპით გამოიყენება როგორითაც POST და GET მეთოდები.
შენიშვნა!HTML ფორმაში <form> ტეგის method ატრიბუტის მნიშვნელობა უნდა ემთხვეოდეს მონაცემების მიღების მეთოდს, გარდა იმ შემთხვევისა როდესაც მონაცემების მიღება ხდება REQUEST მეთოდით.

რესურსები ინტერნეტში

სქოლიო

🔥 Top keywords: მთავარი გვერდისპეციალური:ძიებაარასამთავრობო ორგანიზაციასაქართველო9 აპრილის ტრაგედიაილია ჭავჭავაძევეტოქართული დამწერლობადედამიწის დღესაქართველოს პარლამენტითბილისიდავით IV აღმაშენებელიკატეგორია:ქართული გვარებიასტრიდ ლინდგრენითამარ მეფევეფხისტყაოსანისულხან-საბა ორბელიანიდედამიწაუცხოური აგენტების კანონიკარტოფილიიაკობ გოგებაშვილიფარნავაზ Iკორუფციამეორე მსოფლიო ომიქუნთრუშავაჟა-ფშაველაშოთა რუსთაველივახტანგ I გორგასალიკატეგორია:საქართველოს წითელ წიგნში შეტანილი ცხოველებინიკო ფიროსმანისაქართველოს კანონისაბჭოთა სოციალისტური რესპუბლიკების კავშირიპირველი მსოფლიო ომიქვეყნების სიასაქართველოს გეოგრაფიააფრიკასაქართველოს სახელმწიფო გერბიქართული ენაევროკავშირი