Sunday, September 23, 2012

PHP ԾՐԱԳՐԱՎՈՐՈՒՄ


Ինչ է PHP

php -ն հապավում է, կամ ինչպես ընդունված է ծրագրավորման բնագավառում ընդլայնում է, ամբողջական արտահայտությունն է
Hypertext Preprocessor:
php-ով կրելի է գրել նաև առանձին ծրագրեր օգտվելով իր PHP-GTK լրացուցիչ ծրագրային հավելումից, սակայն նրա կոչումն է ծառայել
վեբ կայքերին: php-ն ծրագրավորման servser-side, այսինքն սերվերային, լեզու է: Այդ առումով այն տարբերվում է Javascript -ից , որը client-side ծրագրավորման լեզու է: Այն հիմնականում կիրառվում է html ֆայլերում, տեղադրվում է սերվերում և սկսում է գործել ինտերնետային բրաուզերի կողմից արված հարցումից հետո: Այն CGI-ն չէ, բայց կարող է փոխարինել նմանատիպ ծրագրերին, նման է ASP-ին: php-ն թեև նախատեսված է եղել Unix համակարգերի և Apache սերվերների համար, բայց  կիրառական է նաև Windows օպերացիոնալ համակարգերի և շատ տիպի սերվերների համար, օրինակ Microsoft Internet Information Server, Personal Web Server, Netscape and iPlanet servers, Oreilly Website Pro server, Caudium, Xitami, OmniHTTPd և այլն: Այն կիրառելի է նաև շատ պրոտոկոլների դեպքում, ինչպես օրինակ LDAP, IMAP, SNMP, NNTP, POP3, HTTP, COM և այլն:
php-ն աչքի է ընկնում իր պարզությամբ և ճկունությամբ, այն համադրելի է շատ տվյալների բազաների հետ, օրինակ  Adabas D, InterBase, PostgreSQL,dBase, FrontBase, SQLite,  mSQL, MS-SQL, Sybase, Hyperwave, MySQL,IBM DB2, ODBC, Unix dbm և այլն,
սովորաբար օգտագործվում է այս համակցությամբ apache+php+sql:
php լեզվով գրված սկրիպտները տեղադրվում են html փաստաթղթի մեջ չորս եղանակներով
1. <?                                                          ;?>
2. <?php                                                    ;?>
3. <script language="php">                     ;</script>
4. <%                                                          ;%>

Սակայն պետք է իմանալ, որ 2 և 3 տարբերակները միշտ կարելի է կիրառել, բայց 1 և 4  տարբերակների դեպքում պետք է php.ini ֆայլում անել համապատասխան փոփոխություն, բացի այդ եթե գործ եք ունենալու XML կամ XHTML ֆայլերի հետ, ապա լավագույն ձևը <?php ?> նշանների կիրառումն է: Իսկ <?php բացող տեգը կիրառական է php5.2-ից սկսած: Ավելի վաղ վերսիաների դեպքում կարելի է օգտագործել  արդեն չկիրառվող այս  հնացած տարբերակից
<\x3fphp
 \x3f> տարբերակը:
php -ի կոդերում կարելի է տեղադրել նաև մեկնաբանությունների տող կամ բլոկ, դրա համար օգտագործում ենք 1. կրկնակր թեք գծերը // կամ # այս դեպքում գծերից աջ մինչև տողի վերջը գրվածները ծրագիրը հասկանում է որպես մեկնաբանություն, 2. /*..................*/  այս դեպքում այս սիմվոլների միջև գտնվող բոլոր կոդերը, անկախ տողերի քանակից կհամարվեն մեկնաբանություն:
Հետաքրքիրն այն փաստն է, որ բրաուզերները արտացոլում են html փաստաթղթի ողջ պարունակությունը, բացառությամբ php -ի սկրիպտների:
ՀԻՇԵՑՈՒՄ:  Ձեր կազմած սկրիպտների աշխատանքը ստուգելու համար լավագույն տարբերակը ձեր համակարգչում համապատասխան ծրագրի տեղադրումն է, որը կտա հնարավորություն debug անելու: Ես գտնում եմ, որ նախընտրելի է համակարգչում սերվերային ծրագրեր տեղադրելը, իսկ դրա համար կան շատ եղանակներ:

ՏԻՊԵՐ

php  լեզվում առանձնացնում ենք տիպերի հետևյալ տեսակները
ա. integer
բ. floating-point numbers    կամ double
գ. string
դ. boolean
ե. array
զ.  object

Բոլոր փոփոխականները սկսվում են $ նշանով: Որպես փոփոխական կարելի է օգտագործել ցանկացած տառ կամ թիվ, ցանկացած քանակի, սակայն պետք է հիշել, որ $ նշանից հետո չի կարելի անմիջապես գրել թիվ, կարևոր է նաև հիշել, որ փոփոխականները զգայուն են ռեգիստրի համար, այսինքն միևնույն արտահայտության մեծատառով և փոքրատառով գրությունը տարբեր են հասկացվում, չի կարելի որպես փոփոխական օգտագործել ռեզերվային keywords բառերը: Սրանցից որոշները ֆունկցիաներ են, որոշներն էլ հաստատուններ, որպես փոփոխական սրանց կիրառումը կարող է առաջացնել լուրջ սխալներ: Փակագծերում գրված է, թե նշված բառերը php-ի որ  վերսիաներում են հանդիպում:

KEYWORDS

and,  or,  xor,  __FILE__,  exception (PHP 5),
__LINE__,  array(),  as,  break,  case, class,  const,  continue,  declare,  default, die(),  do,  echo(),  else,  elseif,empty(),  enddeclare,  endfor,  endforeach,  endif,endswitch,  endwhile,  eval(),  exit(),  extends,
for,  foreach,  function,  global,  if,include(),  include_once(),  isset(),  list(),  new,print(),  require(),  require_once(),  return(),  static,
switch,  unset(),  use,  var,  while,__FUNCTION__,  __CLASS__,  __METHOD__ , final ( PHP 5),php_user_filter ( PHP 5),
interface ( PHP 5),  implements ( PHP 5),  extends,  public ( PHP 5),  private (as of PHP 5),protected (PHP 5),  abstract (PHP 5),  clone ( PHP 5),  try (as of PHP 5),catch (PHP 5),throw (PHP 5),  cfunction (միայն PHP 4),  old_function (միայն PHP 4 ),this (PHP 5),  namespace (միայն PHP 6), import (միայն PHP 6),  goto (միայն PHP 6 ):

Այս լեզվի առանձնահատկություններից մեկն էլ այն է, որ չի պահանջվում փոփոխականի հատուկ հայտարարում:

Այժմ այս բոլորը օրիանկներով

<html>
<head>
</head>
<body>
<?php
   echo("<p>Hello !</p>"); // միատող մեկնաբանություն
   echo("<p>Hello !</p>"); # միատող մեկնաբանություն
   /*
      մեկնաբանության բազմատող բլոկ
   */
?>
</body>
</html>

Այս օրինակում մենք տեսնում ենք, որ php -ի կոդը գտնվում է html փաստաթղթի մեջ, ավելի կոնկրետ <BODY> բաժնում: Այն կարելի է
տեղադրել նաև <HEAD> բաժնում, նույնիսկ մինչև <HEAD> կամ <HTML> տեգերի գրելը:  echo-ն php-ի ամենագործածական հնարավորություններից  մեկն է, նրա միջոցով արտահանում ենք տվյալը, այս դեպքում Hello ! տեքստային արտահայտությունը: // և # , ինչպես նաև /*.....*/ նշանների միջև գրվածները չեն երևա, դրանք կանտեսվեն, քանի որ մեկնաբանություններ են: php -ի կոդերը գրելուց հետո պետք է դնել ; նշանը:

ECHO

Կիառական է սկսած php4-ից: echo-ի միջոցով php-ն կարողանում է արտահանել բոլոր պարամետրերը, այդ թվում նաև html-ի տեգերը:Նրա կառուցվածքն այսպիսինն է
echo ( string $arg1 [, string $...] )
echo() -ն իրականում ֆունկցիա չէ: Այն ծրագրային լեզվի կառուցվածքային տարր է: Եվ եթե անհրաժեշտ է մեկից ավելի պարամետրեր արտահանել   echo-ի միջոցով, ապա պարամետրերը չպետք է ներառել փակագծերի մեջ: Իսկ եթե նախապես կոնֆիգուրացիոն ֆայլում ակտիվացված է (enabled) short_open_tag պարամետրը, ապա կարելի echo-ի փոխարեն անմիջապես կիրառել
<?=$А?> կոդը, ուր A-ն ցանկացած փոփոխական է:

Այժմ դիտարկենք մի քանի օրինակ

<?php
echo "Hello World";
?>
Այս դեպքում մենք կունենանք Hello World արտահայտությունը:
______________________
<?php
echo " Այստեղ ինչպես տեսնում եք գրված է ոչ թե մեկ տող, այլ
մի քանի տողեր: Սա նշանակում է, որ միաժամանակ կարելի է արտահանել մի քանի տող:";
?>
______________________

<?php
$Anun = "Հովհաննես";
$Azganun = "Թումանյանը";
echo "$Anun  $Azganun banastexc e:";
?>
Մենք կունենանք Հովհաննես Թումանյանը banastexc e:
Հայերեն տառատիպերի հետ  հնարավոր է լինեն խնդիրներ, այդ պատճառով սկզբնական շրջանում ճիշտ կլինի փորձել միայն լատինատառ գրություններ, այսինքն  ASCII կոդավորման:
Կամ գլխավոր (main կամ index անունը կրող) ֆայլում գրել այս մետատեգը
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

ԻՆՉՊԵՍ Է ՍԵՐՎԵՐՆ ԱՐՁԱԳԱՆՔՈՒՄ ԱՅՑԵԼՈՒԻ (client) ՀԱՐՑՄԱՆԸ




Արտաքին փոփոխականներ

Երբ կլիենտի հարցումը հասնում է սերվեր, php-ն սահմանում է այնպիսի փոփոխականներ, որոնք պարունակում են տվյալներ  հարցմանը վերաբերող և որոնք էլ պետք է կատարվեն:  Նախ php-ն վերցնում է կլիենտի (այցելուի) համակարգին առնչվող փոփոխականները և ստեղծում է հենց այդ անուններով և դրանց արժեքներով համապատասխան փոփոխականներ php-ի համար, որպեսզի սերվերում առկա տվյալներն ու սցենարները հասանելի լինեն նաև կլինետի համակարգի համար:  Այդ փոփոխականները տեղադրվում են  в $HTTP_ENV_VARS մասիվում:
 $HTTP_ENV_VARS մասիվի փոփոխականները կախված են համակարգից և դրանք կոչվում են միջավայրի փոփոխականներ:
Կլիենտի համակարգի միջավայրի փոփոխականները կարելի է տեսնել  Unix համակարգի համար env, իսկ Windows համակարգի համար set հրամանի միջոցով: (Կարող եք սա փորձլ ինքներդ. 1. Start, 2. Run, 3. գրել ազատ տողում cmd, ապա սեղմեն OK, 4. cmd.exe-ի բացված պատուհանում գրել set, ապա սեղմել Enter  և դուք կտեսնեք ձեր համակարգչի միջավայրի արտաքին փոփոխականների ցանկը):
Ապա php -ն ստեղծում է GET փոփոխականներ, որոնք ստեղծվում են հարցման անալիզի արդյունքում: Այսպես, երբ մենք բրաուզերի հասցեի տողում գրում ենք օրնակ http://www.google.am տողը, ապա այն պահպանվում է $QUERY_STRING փոփոխականի մեջ :
Եթե հարցումն իրականացվում է POST մեթոդով, ապա սկսում են գործել ,  POST փոփոխականները, որոնք ներառվում են $HTTP_POST_VARS մասիվում:



ՀԱՍՏԱՏՈՒՆՆԵՐ

Հաճախ անհրաժեշտություն է առաջանում սահմանել հաստատուններ, այդ նպատակով php -ում կիրառվում է  define() ֆունկցիան: Այն կիրառելի է php4 -ից:

define(CONSTANT, value)

Այս ֆունկցիայի առաջին պարամետրը կոչվում է հաստատուն constant , իսկ երկրորդը դրա արժեքն է  value.

<?php
   define(CONSTANT1,5743);
   define(CONSTANT2,"Hello world !");
?>

Ընդհանրապես CONSTANT-ը գրվում է մեծատառերով, թեև կարելի է գրել նաև փոքրատառերով: Վերը բերված օրինակում CONSTANT1-ը կունենա 5743 արժեք, իսկ երկրորդ օրինակում CONSTANT2-ը Hello world ! արտահայտությունը:

Այժմ փոքր-ինչ բարդացնենք.

<?php
define("HASTATUN", 100);
echo HASTATUN;
echo constant("HASTATUN");
?>
Այս օրինակում մենք սահմանել ենք մի հաստատուն, որն անվանել ենք
HASTATUN, կրկնակի չակերտները " " ասում են, որ այն տեքստային է, իսկ նրա արժեքն է,այսինքն այն հավասար է 100-ի: echo HASTATUN և echo constant("HASTATUN") տողերի շնորհիվ ծրագիրը կգրի փոփոխականի արժեքը:
 Իսկ defined() ֆունկցիայի միջոցով կարելի է ստուգել, թե հաստատունը սահմանված է, թե ոչ:

ԹՎԱԲԱՆԱԿԱՆ ՕՊԵՐԱՏՈՐՆԵՐ

Կիրառվող թվաբանական օպերատորներն են

-, +, *, / և %:
-$a  այս արտահայտությունը նշանակում է բացասական թիվ, այսինքն -a,
$a+$b այս արտահայտությունը նշանակում է a+b
$a-$b այս արտահայտությունը նշանակում է a+b
$a*$b այս արտահայտությունը նշանակում է a*b
$a/$b այս արտահայտությունը նշանակում է a:b
$a%$b այս արտահայտությունը կոչում են մոդուլ:

Օրինակ

<?php
$a=5;
$b=3;
print $a*$b;
?>
արդյունքը կլինի 15, այսինքն 5*3
============================================
============================================
ՏՎՅԱԼՆԵՐ ԱՅՑԵԼՈՒԻ ԲՐԱՈՒԶԵՐԻ ՄԱՍԻՆ

Այժմ դիտարկենք, թե ինչպես կարող ենք իմանալ այցելուի բրաուզերի մասին: Ինֆորմացիան տեղավորվում է փոփոխականների մեջ: Այս դեպում համապատասխան փոփոխականն է $_SERVER['HTTP_USER_AGENT']:Անհրաժեշտ է իմանալ, որ $_SERVER փոփոխականը իր մեջ պարունակում է վեբ սերվերին վերաբերող ողջ ինֆորմացիան, այն կոչվում է սուպեր գլոբալ փոփոխական:

<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>
Այս փոքրածավալ php-ի կոդով կիմանանաք այցելուի բրաուզերի մասին: echo-ն կարտահանի իրենից հետո գրածը: Ակնհայտ է, որ echo-ից հետո գրված է փոփոխական: Դա իմանում ենք $ նշանից, այսինքն բրաուզերի պատուհանին ոչ թե կգրվի _SERVER['HTTP_USER_AGENT'], այլ այս փոփոխականի պարունակությունը, որն էլ հենց user-ի , այսինքն այցելուի բրաուզերի մասին ինֆորմացիան է:

ԱՅՑԵԼՈՒԻ IP ՀԱՍՑԵՆ

Այցելուի IP հասցեն իմանալու համար կարող ենք օգտագործել այս պարզագույն սկրիպտը (արդյունքը երևալու է բրաուզերի պատուհանին)

<?php
$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
echo $hostname;
?>

կամ

<?php
echo gethostbyaddr($_SERVER['REMOTE_ADDR']);
?>

ՏՎՅԱԼՆԵՐԻ ՄՈՒՏՔԱԳՐՈՒՄ ԵՎ ԱՐՏԱՀԱՆՈՒՄ

Ինչպես մեզ հայտնի է, php ծրագրավորման լեզվի կարևորագույն առավելություններից մեկն այն է, որ php -ի սեփական կոդերը չեն երևում բրաուզերի վրա, միայն երևում են այն ամենը, ինչը արտահանում են echo, print, printf, flush և <<< (անվանում են heredoc):
Այժմ կազմենք մի փոքր օրինակ, որը մեզ թույլ կտա մուտքագրել տվյալներ form-ի միջոցով և դրանք արտահանել կիրառելով php-ն:
Սերվերի root թղթապանակում, այն երբեմն կոչում են նաև www թղթապանակ, ստեղծենք երկու  ֆայլեր, առաջինը կոչենք a.html, իսկ երկրորդը b.php (անունները կորղ են լինել կամայական): a.html ֆայլում գրենք այս կոդերը
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-18" />
<title>Untitled Document</title>
</head>
<body>
<form action="b.php" method="post">
 <p>Ձեր անունը <input type="text" name="name" /></p>
 <p>Ձեր տարիքը <input type="text" name="age" /></p>
 <p><input type="submit" /></p>
</form>
</body>
</html>

b.php անունը կրող ֆայլում գրենք այս կոդերը

Բարև <?php echo ($_POST['name']); ?>:
Դուք <?php echo (int)$_POST['age']; ?> տարեկան եք:

Ֆայլերը փակում ենք, կոդավորումն ընտրում ենք utf-8: Բրաուզերի հասցեի տողում գրում ենք a.html, եթե դուք համակարգչում ունեք սերվեր և այս ամենն անում եք ձեր համակարգչում պատրաստած սերվերի վրա, ապա հասցեի տողում գրեք http://localhost/a.html և հետո սեղմեք  Enter: Ձեր բրաուզերը ցույց կտա մի էջ, որն ունի երկու դատարկ տող Անուն և Տարիք լրացնելու համար նախատեսված բաժիններով: Լրացրեք դրանք գրելով ինչ-որ անուն և թիվ, ապա սեղմեք վեբ էջի վրայի Submit կոճակը ... և կբեռնվի նոր էջ b.php անունով (http://localhost/b.php հասցեով) և այդ էջի վրա կլինի Բարև ______: Դուք ________ տարեկան եք: Եթե ամեն բան ստացվեց ձեզ մոտ ինչպես նախատեսված էր, ուրեմն շնորհավորում եմ, համարեք որ սա ձեր առաջին սկրիպտն էր php-ով գրված:

1 comment:

  1. Ապրես Հեղինակ։
    Բոլորը ծրագրավորող են հետն էլ լուրջ, բայց չեն ուզում իրենց հայալեզու հայրենակիցներին օգնել՝ ՊՀՊ լեզվին ծանոթանալու գործում։ Մեկ էլ էսպիսի օգտակար նյութեր կան
    http://web.arma-vir.net/baj.php?BajId=8
    կամ էլ
    http://arma-vir.net/KSearch.php?kwd=PHP5
    Իմ կայքն է։ Փորձում եմ օգտակար լինել

    ReplyDelete

Note: Only a member of this blog may post a comment.