GJUHA PHP
Ne kete leksion
Sintaksa e gjuhes.
Emrat e variablave
Tipet e variablave
Array
Stringjet
Funksionet mbi stringjet (konkatenimi, substr,strlen,strcmp,nl2br)
Komunikimi me browserin ( echo, objektet REQUEST, GET , POST)
Lidhja me bazen e te dhenave
Ekzekutimi i komandave ne bazen e te dhenave
Kapja e te dhenave rezultante te nje queri ne PHP
Funksionet ne PHP
Gjuha PHP
PHP eshe nje gjuhe mjaft popullore si gjuhe skriptimi ne server e perfshire ne HTML.
Kodi PHP vendoset midis <?php dhe ?>
Eshte ndertuar bazuar ne Perl: prandaj eshte e ngjashme me Perl, C, Java
Funksionon si me webserver edhe me prompt - CLI
Disa nga vetite kryesore te PHP :
Variablat kane tipe dinamike dhe nuk ka nevoje te deklarohen
Array shume dimensionale
Support per GET dhe POST te http dhe punon lehstesisht me database.
Suporton klasat dhe objektet
Suporton sesionet dhe cookiet
Ne dallim nga
JavaScript
PHP ekzekutohet ne server !
Nese ne browser mund ta shohim
kodin javascript , kodin PHP nuk do ta shohim dot pasi ne browser dergohet rezultati(outputi) i ekzekutimit
ne server
te kodit PHP .
Kur beni nje perkese per nje skedar PHP merrni si rezultat nje html i cili ndertohet duke ndjekur rregullat e meposhtem:
Serveri e lexon skedarin PHP rresht per rresht duke nisur nga fillimi.
Serveri thjesht kopjon kodin html qe gjen ne faqe
Kur gjen kod php e ekzekuton ate dhe zevendeson kodin me rezultatin e ekzekutimit
Keshtu procesohet skedari php nga fillimi ne fund
Per shembull
Kodi faqa PHP , kodi i te ciles afishohet me poshte ne te majte pas ekzekutimit ne server do te rezultonte ne kodin HTML te afishuar me poshte ne te djadhte. Vini re qe ne kodin qe i shkon browserit nuk ekziston kod PHP.
FAQA PHP ne server
<html>
<head>
<title>shembull 2</title>
<?php
$name=“Endri”;
?>
</head>
<body>
<b>
<?php
echo “Pershendetje ”.$name;
?>
</b>
</body>
</html>
pas ekzekutimit, kodi qe shkon ne browser
<html>
<head>
<title>shembull 2</title>
</head>
<body>
<b>
Pershendetje Endri
</b>
</body>
</html>
Disa rregulla sintaksore te gjuhes PHP
Variablat ne PHP fillojne me shenjen e dollarit $.
Emrat jane Case sensitive.
Emrat ndjekin te njejtat te rregulla si javascript
Emri duhet te filloje me nje shkrojne ose underscore.
Shembujt e meposhtem ilustrojne rregullat per emrat
<?php
$var = "Bob";
$Var = "Joe";
echo "$var, $Var"; // afishon "Bob, Joe"
$4site = 'not yet'; // gabim; fillon me nje numer
$_4site = 'not yet'; // ne rregull; fillon me underscore
$täyte = 'mansikka'; // ne rregull; 'ä' eshte ASCII 228.
?>
Tipet e te dhenave ne PHP
PHP ka disa tipe te dhenash, nder te cilet jane tipet e meposhtem;
Boolean,
integer (zakonisht 32 bits)
floating point numbers
stringje
(associative) arrays (shume me fleksibel se ne Java),
Klasat
Resources dhe
NULL varialbla pa vlere. Nepermjet funksionit isset($v) kontrollohet nese nje variabel ekziston
Tipi i te dhenave Boolean
Ka dy vlera te mundshme : true dhe FALSE
Me vleren false jane ekuivelente vlerat e meposhtme:
Vlera integer 0
Vlera float 0.0
Stringu bosh ””
Vlera NULL
Nje array me zero elemente
Te gjithe vlerat e tjera konsiderohen true
Stringjet
Permbajne karaktere 8 bit. Stringjet rrethohen me thonjeza dyshe ose me thonjeza teke. Nese stringu rrethohet me thonjeza dyshe , thnonjeza teke mund te jete nje katakter perberes i stringut normalisht dhe anasjelltas nese stringjet jane te rrethuar nga thnonjeza teke thonjeza dyshem und te jete element perberes i stringut pa patur nevoje per karaktere speciale.
Per shembull :
$str = "A single quote is ’, right?";
$str = ’A double would be "!’;
Ndersa nese ne nje string duhet te permbaje nje thonjeze te te njejtit lloj me ato qe rrethojne stringun atehere ky konsoderohet si karakter i vecante dhe eshte e nevojshme te paraprihet nga \.
Stringjet mund te zgjaten ne disa rreshta.
Funksione mbi stringjet
Per konktateminim e stringjeve perdoret operatori .(pike), psh: echo "One" . " and " . "two";
Funksionet ltrim, trim, rtrim eliminojne hapesirat boshe ne filliim dhe ne fund te stringut.
Funkstioni strlen kthen gjatesine e stringut te matur sipas numrit te simboleve qe ai permban.
Funksionet strtolower, strtoupper e konvertojne nje string perkatesisht ne shkronja te vogla e te medha.
Funksioni int strcmp ( string str1, string str2) (-1, 0, 1) krahason dy stringje, Nese ai kthen vleren 0 atehere stringjet jane te barabarte.
Funksioni string substr ( string string, int start [, int length]) kthen nje pjese te stringut.
Funksioni nl2br konverton simbolet newline ne nje string (<ENTER> ne tagun HTML qe detyron tekstin te afishohet ne rresht te ri <br>
Strukturat e kontrollit ne PHP
Jane te ngjashme me gjuhe te tjera te programimit si Java dhe C:
Sintaksa e tyre eshte si me poshte:
if (cond) {....} opional else {....}
for(init; cond; inc) { .... }
while (cond) { .... }
do {...} while (cond)
switch case
Nepermjet shembujve te meposhtem do te ilustrojme perdorimin e strukturave te mesiperme te kontrollit:
Shembull if (cond) {....} opional else {....}
<?php
if ($a > $b) {
echo "a eshte me e madhe se b";
} elseif ($a == $b) {
echo "a eshte e barabarte me b";
} else {
echo "a eshte me e vogel se b";
}
?>
Shembull for(init; cond; inc) { .... }
<?php
/* shembull 1 */
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
/* shembull 2 */
for ($i = 1; ; $i++) {
if ($i > 10) {
break;
}
echo $i;
}
/* shembull 3 */
$i = 1;
for (; ; ) {
if ($i > 10) {
break;
}
echo $i;
$i++;
}
/* shembull 4 */
for ($i = 1, $j = 0; $i <= 10; $j += $i, print $i, $i++);
?>
Shembull while (cond) { .... }
<?php
/* shembull 1 */
$i = 1;
while ($i <= 10) {
echo $i++; /* the printed value would be
$i before the increment
(post-increment) */
}
/* shembull 2 */
$i = 1;
while ($i <= 10):
echo $i;
$i++;
endwhile;
?>
Shembull do {...} while (cond)
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
<?php
do {
if ($i < 5) {
echo "i is not big enough";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "i is ok";
/* process i */
} while (0);
?>
Shembuj switch case
Shembull 1
<?php
if ($i == 0) {
echo "i eshte e barabarte me 0";
} elseif ($i == 1) {
echo "i eshte e barabarte me 1";
} elseif ($i == 2) {
echo "i eshte e barabarte me 2";
}
/* i njejti funksionalitet me Switch */
switch ($i) {
case 0:
echo "i eshte e barabarte me 0";
break;
case 1:
echo "i eshte e barabarte me 1";
break;
case 2:
echo "i eshte e barabarte me 2";
break;
}
?>
Shembull 2
<?php
switch ($i) {
case "molle":
echo "i eshte molle";
break;
case "dardhe":
echo "i eshte dardhe";
break;
case "pjeshe":
echo "i eshte pjeshke";
break;
}
?>
Array(Matricat) ne PHP
Array ne PHP lidhin emrat me vlera. KJo menyre ruajtje
eshte e pershtatshme per shume perdorime dhe mund te trajtohet si:
nje matrice normale
nje vektor (matrice njedimensionale
nje hash table
nje fjalor
nje bashkesi (collection)
nje steve
nje rradhe
nje peme
Duke qene se vlera te nje array mund te jene array te tjere , eshte gjithashtu e mundur qe te ndertojme array
multidimensionale.
Vlerat mund te jene te ndryshme brenda te njejtit array ndaj themi qe
array jane heterogjen.
Celesat e array mund te jene vetem strings ose integers.
Deklarimi i nje array()
rray( celes => vlere
, ...
)
// celesi mund te jete vetem integer ose string
// value mund te jete nje vlere e cfaredo tipi
,
Ka nje konstrukt te gjuhes PHP qe mund te perdoret per te krijuar nje array array()i cili merre si parameter nje numer cfaredo me cifte celes(emer)
=> vlere te ndara me presje.
Per shembull
<?php
$arr = array("food" => "apple", 12 => true);
echo $arr["food"]; // afishon apple
echo $arr[12]; // afishon 1
?>
Vlerat e nje array (jo celesat) te jene array te tjere.
Per shembull:
<?php
$arr = array("njearray" => array(6 => 5, 13 => 9, "a" => 42));
echo $arr["njearray"][6]; // afishon 5
echo $arr["njearray"][13]; //
afishon
9
echo $arr["njearray"]["a"]; //
afishon
42
?>
Nese nuk speciffikohet celesi ne momentin e krijimit te arrayt atehere PHP e llogarit automatikisht duke marre vleren INT te rradhes duke i shtuar celesit INT me vleren me te madhe 1.
Per shembull
<?php
// Ky array eshte i njejte ...
array(5 => 43, 32, 56, "b" => 12);
// ...me kete array
array(5 => 43, 6 => 32, 7 => 56, "b" => 12);
?>
Puna me Array
Pas krijimit te array mund te shtojme e te modifikojme vlerat e tij sipas nevojes.
Shembulli i meposhtem ilustron perdorimin e array
<?php
$arr = array(5 => 1, 12 => 2);
$arr[] = 56; // Kjo komande eshte njelloj si $arr[13] = 56;
$arr["x"] = 42; // Shtojme nje element te ri ne array
// me celesin "x"
unset($arr[5]); // Fshin nje element te array
unset($arr); // Fshin te gjithe array
?>
Inkludimi i skedareve (include, require,include_once,require_once)
Sintaksa : include(file_url);
require
(file_url);
include_once(file_url);
require_once(file_url);
require() eshte identik me include() me ndryshimin qe nese ka ndonje gabim prodhon nje error , ndersa include prodhon nje warning. Kjo do te thote qe nese inkludojme nje skedar path i te cilit nuk eshte i sakte ( ose skedari nuk gjendet) nese kemi perdorur include do te afishohet nje warning por faqa dot e vazhdoje ekzekutimin e saj , ndersa nese kemi perdorur nje require faqa nuk do te vazhdoje ekzekutimin.
Per shembull, faqa php :
<?php
require("kot.php");
?>
<html>
<head>
<title>Include vs Require</title>
</head>
<body>
Sot eshte nje dite e bukur!
</body>
</html>
nuk do te afishonte asgje ne browser.
Ndersa faqa:
Per shembull, faqa php :
<?php
include("kot.php");
?>
<html>
<head>
<title>Include vs Require</title>
</head>
<body>
Sot eshte nje dite e bukur!
</body>
</html>
Do te afishonte:
Sot eshte nje dite e bukur!
Qe te dy komandat include dhe require kane versionin e tyre perkatesisht include_once dhe require_once, qe mundeson inkludimin vetem heren e pare te nje skedari. Pra nese skedari eshte inkluduar njehere dhe haset nje tjeter komande per inkludimin e skedarit ne te njejten faqe , kjo komande injorohet.
Komunikimi me kodin PHP
Nje script PHP ka nevoje per input dhe n
e program kemi nevoje per te kapur keto vlera.
Vlerat e futura nga perdoruesi ne nje faqe kapen nepermjet variablave te vecante
$_GET, $_POST, $_COOKIE, $_FILES.
Ne metoden GET kalohen cifte emer vlere
Psh
http://www.google.com/search.php?id=knor&n=10
if ($id==$_GET[’id’])
echo "User id”. $id. “was defined";
else
die "No user id";
Faqa e meposhtme ilustron menyren se si kapen vlerat e inputeve te perdoruesit ne kodin PHP
<form method="POST">
Name: <input type="text" name="username"><br>
Email: <input type="text" name="email"><br>
<input type="submit" name="submit" value="Submit me!">
</form>
<?php
If (isset($_REQUEST[‘submit’])
{
echo $_POST[’username’]; // nese forma eshte bere submit me POST
echo $_REQUEST[’username’]; //nese forma eshte bere submit me POST ose me GET
echo $_REQUEST['email’]; //
nese forma eshte bere submit me GET
}
?>
Lidhja me bazen e te dhenave
PHP ka “built in database operations” me disa baza te dhenash si
per mySQL dhe DBMS te tjere jane te ngjashem.
Lidhja me DB
mysql_connect("host", "login", "password"))
or die("Could not connect.");
mysql_select_db("carbase") or
die (mysql_error());
Disa veprime baze ne bazen e te dhenave
Shembull 1 - check login
<?php
$u=$_REQUEST[‘username’]; //une
$p=$_REQUEST[‘password’]; // sot
$q=“select * from perdoruesit where username=‘”.$u.”’ and password=‘ ”.$p.” ’ ”;
/* Vlera e stringut – sql dinamike
select * from perdoruesit where username = ‘une’ and password=‘sot’ */
$res=mysql_query($q)
//n mysql_query ekzekuton komanden ne DB
or die(“nuk ecen”);
if ($rec=mysql_fetch_array($res))
{
echo “welcome ”.$u;
}
else
{
echo “username password nuk jane te sakte”;
echo “<a href=‘login.php’>kliko per tu loguar perseri</a>”;
}
?>
Shembull 2 - Afisho listen e studenteve
<?php
$q=“ select * from studente where
qyteti=‘ ”.$_REQUEST(“qyteti”).” ’ order by emri,mbiemri ”;
$res=mysql_query($q)
or die(“nuk ecen”);
while $rec=mysql_fetch_array($res)
{
echo $rec[“emri”].” ”.$rec[“mbiemri”];
echo “<br>”;
}
?>
Funksionet ne PHP
Deklarimi i funksioneve:
<?php
function f ($arg_1, $arg_2, ..., $arg_n) {
echo “Funksion shembull.\n";
$retvat="100";
return $retval;
}
?>
Emrat e funksioneve jane case insensitive.
Mund te ktheni disa vlera nga nje funksion duke kthyer nje array.
Si default funksionit
i kalohen
argumentat si vlere.
Nese duam qe ti kalojme nje argument si reference (ndryshimi et ruhet edhe jashte funksionit) atehere emri i argumentit do te paraprihet me shenjen &.
Per shembull funksioni i meposhtem i shton nje stringu ne fund nje pike cuditese !
<?php
function shto_pike_cuditese (&$string) { $string .= "!"; }
?>
Shembull te nje funksioni qe afishon studentet
<?php
//mendohet qe tashme jemi lidhur me DB dhe kemi perzgedhur DB
function afisho_studente ()
{
$q=“ select * from studente where
qyteti=‘ ”.$_REQUEST(“qyteti”).” ’ order by emri,mbiemri ”;
$res=mysql_query($q)
or die(“nuk ecen”);
while $rec=mysql_fetch_array($res)
{
echo $rec[“emri”].” ”.$rec[“mbiemri”];
echo “<br>”;
}
}
//tashme sa here na duhet et afishojme listen e studenteve mund te therrasim funksionin qe ndertuam
$x=
afisho_studente ();
//ne $x kapet vlera qe kthen funksioni ndonese nuk perdoret
?>