Category: PHP pamokos

Duomenų įrašymas į failą

Anksčiau populiariausias būdas saugoti informaciją būdavo kaupti ją paprastame *.dat ar tekstiniame faile. Duomenys buvo skaitomi iš jo ir rašomi į jį, kol neatsirado greitesnis būdas – duomenų bazės. Nors duomenų bazių vartojimas vis populiarėja, failų skaitymas ir rašymas į juos yra naudingi.

Pagrindinės funkcijos skaitymui bei rašymui: fopen(), fgets(), fputs(), fclose(), feof(); Jų pilnai pakanka darbui su failais.

fopen() funkcija

fopen – atidaro failą (skaitymui, rašymui arba papildimui). fopen(string failo_pavadinimas, string mode); mode – kokiai “sesijai” atidaryti failą. O “sesijos” yra štai tokios:

‘r’ – atidaro failą tik skaitymui, žymeklį pastato failo pradžioje,
‘r+’ – atidaro failą skaitymui ir rašymui, žymeklį pastato failo pradžioje,
‘w’ – atidaro failą rašymui, žymeklį pastato failo pradžioje, failo dydį nunulina (ištrina visus buvusius duomenis), o jei failas neegzistuoja – sukuria jį,
‘w+’ – atidaro failą skaitymui ir rašymui, žymeklį pastato failo pradžioje, faila nunulina, o jei failo nėra, jį sukuria,
‘a’ – atidaro failą tik rašymui, pastato žymeklį į failo pabaigą, jei failas neegzistuoja – sukuria jį,
‘a+’ – atidaro failą ir skaitymui ir rašymui, pastato žymeklį į failo pabaigą, jei failas neegzistuoja – sukuria jį.

Pavyzdžiai:

$fp = fopen(“/home/katalogas/file.txt”, “r”);
$fp = fopen(“http://www.mano.lt”, “r”);
$fp = fopen(“ftp://vartotojas: slaptazodis@mano.lt/”, “w”);

Atidarius failą, atlikus savo veiksmus, būtinai reikia jį uždaryti, pasinaudojus funkcija fclose();, pvz.:

fclose($fp);
fputs(); – įrašo duomenis į failą,
fgets(); – nuskaito nurodyto ilgio eilutę į string tipo kintamąjį,
$string = fgets($fp,255); // nuskaito visą eilutę

Pavyzdys:

$fp = fopen(“/katalogas/failas.txt”, “r”);
while ($bf = fgets($fp, 4096)) {
echo $bf;
}
fclose($fp);

Nuskaito visas failo eilutes ir išveda į ekraną. Bet ciklą galime pakeisti paprastesniu:

$fp = fopen(“/katalogas/failas.txt”, “r”);
while (!feof($fp)) {
$bf = fgets($fp, 4096)
echo $bf;
}
fclose($fp);

Dabar ciklas vykdomas tol, kol prieinama failo pabaiga.

Padarykime paprasčiausią puslapio skaitliuką, kad pamatytume, kaip gi iš tiesų veikia aukščiau aprašytos funkcijos:

<?php
$filename = “skait.dat”; /* Priskiria kintamajam failo pavadinimą */
$fp = @fopen($filename,”r”); // Atidaro failą skaitymui
if ($fp) { /* Jei failas atidarytas, vykdomas sąlygos sakinys */
$counter=fgets($fp,10); /* Į kintamąjį nuskaitoma skaitliuko reikšmė */
fclose($fp); // Uždaromas failas
} else {
$counter=0; /* Jei failo nebuvo, skaitliukui priskiriamas nulis */
}
$counter++; /* Skaitliuko reikšmė padidinama vienetu */
echo $counter; // Išspausdinama reikšmė
$fp = fopen($filename,”w”); /* Ir toliau į failą įdedama nauja skaitliuko reikšmė, padidinta vienetu. */
if ($fp) {
$counter=fputs($fp,$counter);
fclose($fp);
}
?>

Štai taip savo puslapiui galima pasigaminti skaitliuką. Jei puslapis dažnai lankomas, galite susidurti su problema, kad du lankytojai ateis vienu metu, tuo pačiu vienas skaitys, kitas rašys, o tai negalima, todėl skaitliuko duomenys bus neteisingi. Kad tai išpręstume, galima naudoti funkciją flock(). Ši funkcija laikinai sustabdo antro vartotojo darbą ir palaukia, kol pirmasis baigs dirbti su failu, tada antrajam vartotojui leidžiama pradėti dirbti. Patariama kuo dažniau naudoti šią funkciją dažnai lankomuose puslapiuose.

Pavyzdys:

$failas = @fopen(‘skait.dat’,’r’);
flock = ($naujas_failas,2);
$count = fgets($file, 255);
$count++;
flock = ($naujas_failas,3);
fclose($file);

Šiuo atveju jūs esate apsaugoti nuo galimo duomenų praradimo.

Tekstiniai failai – puiki duomenų bazių alternatyva pradedančiajam. Jam nebūtinas nei specialus palaikimas, nei labai didelės PHP žinios. Todėl paprastiems projektėliams pilnai turėtų pakakti ir duomenų saugojimo faile.

Informacijos perskaitymas iš tekstinio failo

<?php
$failas=”duomenys.txt”;
$duomenys = fopen($failas, “r”);
$informacija = fread($duomenys, filesize($failas));
fclose($duomenys);
echo $informacija;
?>

Naujas įrašymas ištrinant visus senus duomenis

<?php
$informacija=”Tekstas, įrašomas į failą”;
$failas=”duomenys.txt”;
$duomenys=fopen($failas, “w”);
fwrite($duomenys, “$informacija”);
fclose($duomenys);
?>

Įrašymas neištrinant senų duomenų, o tęsiant sąrašą toliau

<?php
$informacija=”Tekstas, įrašomas į failą”;
$failas=”duomenys.txt”;
$duomenys=fopen($failas, “a”);
fwrite($duomenys, “$informacija\n”);
fclose($duomenys);
?>

Tekstinė duomenų bazė

Pavyzdys: Jonas|19|192|77

Pateikta eilutė apibūdina asmens vardą, amžių, ūgį ir svorį.

Taigi, duomenys.txt struktūra turi būti tokia: tekstas0|tekstas1|tekstas2|tekstas3. Kodo fragmento esmė tokia, kad yra perskaitoma eilutėje surašyta informacija ir išskirstoma į atskirus atitinkamus kintamuosius $laukelis[$i]. Šiuo būdu jau įmanoma sukurti panašią į duomenų bazės lentelę:

<?php
$failas=”duomenys.txt”;
$simboliu_skaicius = count($failas);
$stulpelis = file($failas);
for($i=0; $simboliu_skc > $i; $i++){
$laukelis = explode(“|”, $stulpelis[$i]);
}
echo “$laukelis[0] $laukelis[1] $laukelis[2] $laukelis[3]”;
?>

Kintamasis, į kurį įveda informacija, turėtų būti toks: $informacija=”Mindaugas|20|185|70″;

Tekstinė duomenų bazė

Pavyzdys:

Mindaugas|20|185|70
Kristina|20|174|50
Rimantas|50|190|80
[..]
Vaida|19|171|53

duomenys.txt
 failo sukūrimas yra toks:

<?php
$vardas=”vardas”;
$amzius=”amžius”;
$ugis=”ūgis”;
$svoris=”svoris”;
$informacija=$vardas.”|”.$amzius.”|”.$ugis.”|”.$svoris;
$failas=”duomenys.txt”;
$duomenys=fopen($failas, “a”);
fwrite($duomenys, “$informacija\n”);
fclose($duomenys);
?>

Kategorijose: PHP pamokos, Programavimo pamokos

Data ir laikas

Darbui su data PHP turi savo funkciją date(formatas). Tai gana patogi funkcija. Funkcija naudojama laiko ir datos gavimui įvairiais formatais.

Formatai:

· Y – metai, pvz.: 1997
· y – metai, pvz.: 97
· M – menuo, pvz.: Oct
· m – menuo, pvz.: 10
· D – savaitės diena, pvz.: Fri
· l – savaitės diena, pvz.: Friday
· d – diena, pvz.: 27
· z – metų diena, pvz.: 299
· H – valandos 24 val. formatu
· h – valandos 12 val. formatu
· i – minutės, pvz.: 5
· s – sekundės, pvz.: 40
· a – am/pm

Programų pavyzdžiai:

$date = date(‘d M Y’); // Išves 15 Dec 2008
$date = date(‘H:i:s’); // Išves: 15:23:11
$date = date(‘d M Y, H:i:s’); // Išves: 15 Dec 2008, 15:23:11

Tačiau dažnai prireikia ne angliškos, o lietuviškos datos. Kaip sulietuvinti ją? Skripto pavyzdys:

<?php
function data_lt()
{
$men = date(‘n’);
$mas_men = array(“Sausio”, “Vasario”, “Kovo”, “Balandžio”, “Gegužės”, “Birželio”,
“Liepos”,”Rugpjūčio”, “Rugsėjo”,”Spalio”, “Lapkričio”, “Gruodžio”);
$data = date(‘Y ‘);
$data .= $mas_men[$men-1];
$data .= date(‘ j \d.’);
return $data;
}
echo data_lt();
?>

Skriptas išves 2008 menuo diena d., pvz. 2008 Gruodžio 15 d.

Kategorijose: PHP pamokos, Programavimo pamokos

Duomenų (kintamųjų) iš formos patikrinimas

Dažna problema internete – netikri duomenys. Žmones bando apeiti formų pildymą, įrašo netikrus el. pašto adresus ir pan. Yra priemonių nuo to apsisaugoti.

Visų pirma, reiktų riboti žinutės ilgį, kad nenaudėliai neprirašytų šiukšlių. Tai galima padaryti taip:

<INPUT TYPE=”text” size=”20″ NAME=”from” maxlength=”30″><br>
<TEXTAREA NAME=”msg” ROWS=”3″ COLS=”20″ maxlength=”500″> </TEXTAREA>

maxlength – didžiausias įvedamų simbolių skaičius.

El. paštas, be abejo, gali būti nesąmoningas, todėl sukuriamas mažas skriptukas, kuris patikrina, ar el. paštas parašytas teisingai. Išnagrinėkime patį paprasčiausią atvejį, kai vartotojas neįveda el. pašto adreso. Tam mes naudosime funkciją empty(). Ji tikrina, ar kintamasis nėra tuščias (ar jam yra priskirta kokia nors reikšmė):

if (empty($from))
{
echo “Neįvestas el. pašto adresas”;
}

Įterpkite šį gabaliuką į mail.php ir turėsite apsaugą nuo tuščio from laukelio. Be abejo, žmogus gali į laukelį įvesti bet ką, tada bus apeita ši apsauga. Kad taip neatsitiktų, patikrinsime, ar įrašytas el. pašto adresas turi savyje simbolį “@”. Naudojama paprastastring funkcija: int strrpos(string haystack, char needle). Ji randa ieškomo simbolio poziciją eilutėje:

function eta() /* Funkcija, kuri patikrina, ar kintamajame $from yra “@” */
{
global $from; /* $from padarome globaliuoju kintamuoju */
$pos = strpos($from, “@”); /* į kintamąjį $pos įrašoma pozicija, kurioje yra “@” */
if (!$pos) /* Pažiūrime, ar apskritai yra “@” adrese */
{
return false; /* Grąžina funkcijos reikšmę false, jei “@” nėra adrese */
}
else
{
if ($pos!=0 && $pos!=1)
{ /* Apsaugome, kad adresas nebūtų pvz. a@as.lt arba @as.lt) */
return true; /* Jei viskas gerai, grąžina funkcijos reikšmę true. */
}
}
}

Štai funkcija, kuri apsaugo nuo el. pašto be simbolio “@”.
Taip pat galima tikrinti, ar į skriptą duomenys atsiunčiami POST metodu. Pvz. iš HTMLdokumento:

<form method=post action=reg.php>
Pavyzdys iš reg.php skripto:
if ($REQUEST_METHOD == “POST”)
{
// darom
}
else echo “Klaida! Metodas turi būti POST!”
;

Taip apsisaugosite nuo GET metodu perduodamų kintamųjų, pvz. reg.php?vardas=auksinis&mailas=kardas&papildomas=darkitoks

Kategorijose: PHP pamokos, Programavimo pamokos

Funkcija mail()

Supažindinama su labai plačiai naudojama mail() funkcija, kurios paskirtis – iš PHP skripto siųsti el. pašto laiškus.

PHP.ini konfiguravimas

Atkreipkite dėmesį, kad dažniausiai jei jūs testuojate skriptus ant Windows platformos, jumsmail() funkcija neveiks. Neveiks todėl, kad php.ini faile pagal nutylejimą SMTP serveris nurodytas localhost, o didžiausia tikymybe yra ta, kad pas jus localhost‘e SMTP serverio nėra (nebent naudojate Windows Server), todėl savo ekrane matysite tik štai tokį užrašą:

Warning: Failed to Connect in C:\kelias\kelias\failas.php on line XX.

PHP negali prisijungti prie SMTP serverio. To galite išvengti įrašę php.ini faileSMTP=jums_žinomas_smtp_serverio_adresas. Jei pas jus PHP ne kaip CGI, neužmirškite perkrauti Apache serverio.

Pradmenys

Taigi, ką daro mail() funkcija? mail() funkcija leidžia jums siųsti el.paštą tiesiai iš jūsų kodo. Ji dažniausiai naudojama kontaktų, registravimo formose, kai tam tikru adresu norima informuoti apie užpildytą formą. Bet pritaikymo būdų yra begalė.

bool mail(string to, string subject, string message [, string additional_headers [, string
additional_parameters ])

Mail funkcija grąžina boolean tipą (true/false). Jei mail funkcija grąžina false, reiškia el. pašto išsiųsti nepavyko. Štai kaip siunčiamas paprasčiausias el. laiškas:

<?php
mail(‘ webmaster@php.lt‘,’Čia norima tema (subject)’,’Ir einanti žinutė’);
?>

Taigi, kaip matote, pirmasis mail argumentas – tai el. pašto adresas, kuriam siunčiate el.paštą, paskui rašoma tema (subject), o po temos – ir žinutės tekstas. Žinutės tekste, norint nukelti tekstą į naują eilutę, įterpkite \n (new line|nauja eilutė), pvz.:

<?php $tekstas = “mano žinutė\n\nJonas Jonaitis\nSkripteris”;?>

Po žinutės gali būti papildomi parametrai: antraštės (headers), bei kiti papilomi parametrai. Tik išsiuntus šį el. laišką pastebėsite, kad el. žinutėje nėra (kai kurių) lietuviškų raidžių. Jų nėra dėl netinkamos el. žinutės koduotės. Žinutės koduotė yra nustatoma žinutės antraštėje (header).

Antraštės (headers)

Pastaba: žinutės antraštės yra atskiriamos “\r\n”.

Antraštėse galima nurodyti daug įdomių bei naudingų dalykų: nuo ko siunčiamas laiškas, laiško koduotė, reply-to laukas, mailer‘is, bcc ir t. t. Štai pavyzdys paprasčiausios antraštės, kuri turėtų būti kiekviename laiške:

<?php
$header = “Content-type: text/plain; charset=\”windows-1257\”\r\n”;
$header .= “From: Nikolajus Krauklis <mano@el_pastas.lt>\r\n”;
$header .= “Reply-to: mano@el_pastas.lt\r\n”;
mail(‘ webmaster@php.lt‘,’Čia norima tema (subject)’,’Ir einanti žinutė’,$header);
?>

Content type nurodome, kad žinutė bus paprastu (plain) tekstu, ne HTML, bei windows-1257 charset‘u (simbolių rinkiniu). Išsiuntus laišką su šia antrašte galite būti įsitikinęs, kadWindows vartotojai gaus jūsų išsiųstą el.žinutę su visom lietuviškomis raidėmis. Fromantraštėje nurodome, nuo ko siunčiamas laiškas. Siuntėjas/gavėjas gali būti norodomas štai tokiais būdais:

<?php
/*
* paste iš kažkokio RFC, susijusio su meil’ais
*
* From: mark@cbosgd.UUCP
* From: mark@cbosgd.UUCP (Mark Horton)
* From: Mark Horton < mark@cbosgd.UUCP>
* From: “Mark Horton” < mark@cbosgd.UUCP>
*/
?>

Reply-to – kur siųsti atsakymą. Pagal nutylėjimą, jei nėra reply-to, jūsų mailer’is atsakys asmeniui, kuris atsiuntė šį laišką, bei jei yra reply-to, paspaudus mailer’yje (outlook’e, bat’e,
mutt’e ir t.t.) reply, to: lauke atsiras reply-to el.pašto adresas.

Štai dar papildomos antraštės, kurios gali praversti:

<?php
$headers .= “X-Mailer: mano PHP mailer’is\r\n”; // mailer’is
$headers .= “X-Priority: 3\r\n”; // žinutės tipas: 1 UrgentMessage, 3 Normal
$headers .= “Return-Path: < mail@server.com>\r\n”; //kur grąžinti laiškąą, ištikus klaidai
mail(‘ webmaster@php.lt‘,’Čia norima tema (subject)’,’Ir einanti žinutė’,$headers);
?>

X-Mailer – tai niekur nedominuojantis headeris.
Priority – žinutės prioritetas. Aukščiausias – 1, normalus – 3.
Return-path – tai el.pašto adresas, į kurį bus nukreipiamos visos klaidas (pvz.: el.žinutė nepasiekė reikiamo neveikiančio serverio, arba tokio el. pašto adreso jau nebėra sistemoje).

Kaip nusisiųsti el. žinutės kopiją sau? Yra trys galimybės:

1. Pats paprasčiausias – nurodyti To laukelį štai taip:

<?php
$to = “Kažkoks vartotojas < pvz@pvz.lt>” . “, “;
$to .= “Mano el. paštas < mano@elpastas.lt>”;
mail($to,’Žinutė dviem gavėjams’,’Tekstas’);
?>

2. Savo el. pašto adresą nurodyti Cc antraštės laukelyje:

<?php
$header .= “cc: mano@elpastas.lt\r\n”;
?>

Šiuo atveju visi gavėjai matys, kam buvo siunčiamas gautas el.paštas.

3. Naudotis antraštės Bcc laukeliu:

<?php
$header .= “bcc: mano@elpastas.lt\r\n”;
?>

Dabar gavėjai nepastebės, kad laiško kopija buvo nusiųsta ir jums.

Keletas apibendrintų dalykų

Žinutės taip pat gali būti siunčiamos ir HTML formatu, tada antraštė atrodytų taip:

<?php $header = “Content-type: text/plain; charset=\”windows-1257\”\r\n”;?>

Dabar el. žinutėje galite naudoti ir HTML žymes (pastaba: ne visi mailer‘iai turi galimybę rodyti el. žinutes HTML formatu).

Kategorijose: PHP pamokos, Programavimo pamokos

Duomenų (kintamųjų) perdavimas iš formos skriptui

Trumpai paaiškinama, kaip duomenis iš formos perduoti skriptui, pateikiamas pavyzdys.

Padarykime paprastą laiško (mail) siuntimo formą (skriptą). Mes naudosime paprastą PHP funkciją mail(). Ką ši funkcija daro? Štai jos aprašymas:

mail($adress, $subject, $msg, “From: Nuo draugo…..”);

Iš aprašymo turėtų būti viskas aišku. Ši funkcija išsiunčia laišką adresatui. Mums lieka susikurt kintamuosius ir įvykdyti funkciją. Pradžioje sukursime skriptą mail.php3 , o vėliau ir formą, kurios pagalba bus perduodami duomenys:

<?php
$address=” jonas_jonaitis@centras.lt“; // čia adresas, kur siunčiat
$subject=”Laishkas nuo: $from”; /* kintamaji $from skriptas ims iš formos */
mail ($address,$subject,$msg,”From: $from”); /* kintamasis $msg taip pat bus imamas iš formos */
?>

Štai ir sukūrėme skriptą. Jums lieka ji išsaugoti vardu mail.php3. Dabar mums reikia sukurti forma, iš kurios bus siunčiamas laiškas. Čia ir sužinosite, kaip kintamieji per formą perduodami skriptui (elementarus, lengvas dalykas). Mums reikia sukurti formą su dviem laukais: nuo ko laiškas ir laiško turinys. Taip ir padarysime:

<FORM METHOD=”POST” ACTION=”mail.php3″>
<I>- Įveskite duomenis:</I><BR>
<INPUT TYPE=”text” size=”20″ NAME=”from”><BR>
<TEXTAREA NAME=”msg” ROWS=”3″ COLS=”20″> </TEXTAREA> <BR>
<INPUT TYPE=”Submit” NAME=”Ok” VALUE=”Išsiųsti”>
</FORM>

Štai ir viskas. Daugiau nieko daryti jums nebereikia. Kintamieji from ir msg automatiškai bus perduodami į skriptą, o funkcija mail() juos panaudos. Kam naudotis kažkieno padarytais skriptais? Visai paprasta norimą skriptą pasidaryti pačiam, pagal save. O tai atlikti galite tikrai labai nesunkiai ir per trumpą laiko tarpą. Panašiai yra ir su adresiniu duomenų perdavimu. Tarkime, mums reikia, kad į administravimo skriptą ateitų duomenys username irpassword. Tai galime padaryti kreipdamiesi į skripta tokiu pavidalu:

http://www.domenas.lt/katalogas/admin.php3?user=jonas&pswd=jonaitis

Tada skripte admin jūs gaunate kintamuosius $user ir $pswd ir galite juos sutikrinti su jūsų norimais.

Kategorijose: PHP pamokos, Programavimo pamokos

Veiksmai su kintamaisiais

Truputis veiksmų su kintamaisiais teorijos ir praktikos. Pateikiami keli pavyzdiniai veiksmai.

Kintamieji gali būti globalūs ir lokalūs. Pavyzdžiui:

$a = 1; /* globalus kintamasis */
function Testas ()
{
echo $a; /* lokalaus kintamojo spausdinimas */
}
Testas ();

Kaip manote, ką atspausdins ši funkcija? O gi nieko, kadangi funkcijoje naudojamas lokalus kintamasis, o jis vis dar nėra apibrežtas. Pakeiskime pavyzdį, kad jis veiktų:

$a = 1; /* globalus kintamasis */
function Testas ()
{
global $a;
echo $a;
}
Testas ();

Dabar funkcija atspausdins reikšmę 1.
Pirmame funkcijos variante yra sukuriamas statinis kintamasis, kuris funkcijai baigus darbą yra sunaikinamas. Statinį kintamąjį galima aprašyti ir taip:

function Testas ()
{
Static $a = 0;
echo $a;
$a++;
}

Dabar vykdant funkciją yra sukuriamas statinis kintamasis, kuris yra atspausdinamas ir jo reikšmė padidinama vienetu, tačiau vos tik funkcija baigia savo darbą, šis kintamasis yra sunaikinamas.

Yra tokia savoka, kaip kintamojo kintamasis: Pvz.:

$sak = “Sveikas”;
$$sak = “pasauli”;
echo “$sak ${$sak}”;

Ekrane pamatysime: Sveikas pasauli.

Pavyzdys su kintamųjų veiksmais:

function double($i)
{
return $i*2;
}
$b = $a = 5; /* reikšmę penki priskiria kintamiesiems $a ir $b */
$c = $a++; /* kintamajam $c priskirima reikšmė 6 (padidinta $a reikšmė) */
$f = double($c++); /* funkcija double grąžina reikšmę du kartus didesne (return) funkcijos reikšmė bus
6*2=12 */
$c += 10; /* $c reikšmė padidinama dešimčia (10) */
$d=$a+$b; /* susumuoja */


Kitos operacijos su kintamaisiais:

$a + $b; //sumuoja
$a – $b; //atima
$a * $b; //daugina
$a / $b; //dalina
$a % $b; //randa modulį

Operacijos su eilutėmis (string):

$a = “Sveikas”;
$b = . “pasauli”; // po šio sakinio kintamasis $b bus lygus “Sveikas pasauli”

Loginiai operatoriai:

$a and $b; //teisinga, jei abu reiškiniai teisingi
$a or $b; //teisinga, jei nors vienas iš reiškinių teisingas
$a xor $b; //teisinga, kai kažkuris iš teiginių teisingas, bet ne abu kartu
!$a; //neigimas, ne $a
$a&&$b; //AND
$a||$b; //OR

Lyginimo operatoriai:

$a == $b; //teisinga, jei lygu
$a != $b; //teisinga, jei nelygu
$a < $b; //teisinga, jei $a mažiau $b
$a > $b; //teisinga, jei $a daugiau už $b
$a <= $b; //teisinga, jei $a mažiau arba lygu $b
$a >= $b; //teisinga, jei $a daugiau arba lygu $b

Kategorijose: PHP pamokos, Programavimo pamokos

Kintamieji ir kintamųjų tipai

Apžvelgsime 5 pagrindinius kintamųjų tipus, kurių turėtų visiškai pakakti rašant norimus skriptus.

PHP palaiko štai tokius kintamųjų tipus:

· Integer; // sveikojo skaičiaus tipas;
· Floating-point numbers; // slankaus kablelio skačciai, arba kitaip – realieji skaičiai;
· String; // eilutės tipas;
· Array; // struktūrinio kintamojo tipas – masyvas;
· Object; // objekto tipas (objektiniam programavimui).

Dažniausiai kitamojo tipas yra nustatomas ne paties programuotojo, o skripto kompiliatoriaus. Jis pats priskiria kintamajam tinkamą tipą. Jei jums reikia keisti kintamojo tipą programos metu, tai galite padaryti naudodamiesi settype() funkcija
.
Integer (sveikojo skaičiaus tipas)

Šis tipas priskiriamas kintamajam šiais atvejais:

$a = 1234; # dešimtainis skaitmuo
$a = -123; # neigiamas skaitmuo
$a = 0x12; # šešioliktainis skaičiaus pavidalas (lygus 18 dešimtainėje sistemoje)

Floating-point numbers (slankaus kablelio skaičiai, arba kitaip realieji skaičiai)

Štai du būdai, vaizduojantys realųjį skaičių:

$a = 1.234;
$a = 1.2e3;

String (eilutės tipas)

String tipas gali būti vaizduojamas programavimo kalbose dviem būdais:

1. tarp “viengubų” kabučių, pvz.: a$=’Testas’;
2. tarp “dvigubų” kabučių pvz.: a$=”Kitas testas”;

Kaip C (C++) ir Perl, PHP naudoja štai tokius intarpus:

\n – nauja eilutė
\\ – pasvirasis brūkšnys (back slash)
\$ – dolerio ženklas (nes paprastai su juo į eilutę įterpiamas kintamasis);
\” – kabutės (kad jomis neužbaigtumėte savo eilutės). Šiuo ženklu taip pat galima pavaizduoti ir kitus norimus simbolius.

Array (struktūrinio kintamojo tipas – masyvas)

Vienmatis masyvas

Masyvą galima įsivaizduoti kaip vieną ilgą elementų seką, kurie susiję savo kintamųjų tipais. Pavyzdžiui, štai savaitės dienos masyvas:

[“pirm”, “antr”, “trec”, “ketvr”, “penkt”, “sest”, “sekm”]
$savdienos[0]=”pirm”;
$savdienos[1]=”antr”;
$savdienos[2]=”trec”;
$savdienos[3]=”ketvr”;
$savdienos[4]=”penkt”;
$savdienos[5]=”sest”;
$savdienos[6]=”sekm”;

Štai taip įmanoma surašyti elementus į masyvą savdienos.

PASTABA: atkreipkite dėmesį į tai, kad PHP masyvas prasideda nuo index’o [0], o ne kaip Pascal’yje ar kitur nuo [1].

Į vienmatį masyvą įrašyti elementus galima ir šiuo būdu:

$savdienos[ ]=”pirm”; // 0 elementas
$savdienos[ ]=”antr”; // 1 elementas
$savdienos[ ]=”trec”; // ir t.t.
$savdienos[ ]=”ketvr”;
$savdienos[ ]=”penkt”;
$savdienos[ ]=”sest”;
$savdienos[ ]=”sekm”;

Masyvas gali buti rūšiuojamas šiomis funkcijomis: asort(), arsort(), ksort(), rsort(), sort(), uasort(),
usort(), ir uksort(). Placiau apie šias funkcijas skaitykite instrukcijoje. Taip pat per masyvo elementus įmanoma “vaikščioti” štai šiomis funkcijomis: next() ir prev().

Dvimatis masyvas (matrica)

Dvimatis masyvas vaizduojamas panašiai:

$skaicius[1][2] = $kitas; // dvimatis masyvas

Daugiamačiai (trimačiai ir t.t.) masyvai vaizduojami analogiškai:

$masyvas[1][2][3] = $kitas; // trimatis masyvas

Objekto tipas

Sukurti objektą ir vėliau jį naudoti galima štai taip:

Class objektas
{
function parasyti()
{
echo “SVEIKAS PASAULI”;
}
}
$naujas = & new objektas;
$naujas -> parasyti();

PASTABA: 
kintamieji $kint ir $Kint yra visiškai skirtingi, todėl nesusipainiokite juos naudodami.

Kategorijose: PHP pamokos, Programavimo pamokos

PHP skriptai (scenarijai)

Pasitelkiant PHP galima padaryti praktiškai viską: nuo apsilankymų skaitliukų, svečių knygų iki forumų ir skelbimų lentų. PHP skriptų plėtinys – .php. Juos galima sutikti ir su kitokiais plėtiniais: .php .phtml .php3 .php4. Skripto kūnas (body) gali būti įterptas į bet kurią HTML vietą. Kūnas (pats skripto turinys) yra rašomas tarp štai tokių simbolių:

<?php
// štai čia rašomas pats skriptas
?>

arba

<?php /*Čia rašomas skripto tekstas*/ ?>

arba

<? /*Čia rašomas skripto tekstas*/ ?>

arba

<script language=”php”>
// čia iterpiamas skriptas
</script>

arba

<%
// įterpiamas tekstas tarp ASP skliaustelių.
%>

Kaip ir kiekvienoje programavimo kalboje (bet ne visose), eilutės skiriamos kažkokiu skiriamuoju ženklu. PHP kalboje eilutės skiriamos kabliataškiu. Pvz.:

<?php
echo ‘Sveikas Pasauli’;
echo “TESTAS”;
echo “Labanakt”;
?>

Taip pat šioje programavimo kalboje yra ir komentarai (comments). Komentuoti savo skripto dalis galima štai taip:

<?php
echo “Tai yra testas”; // Komentaras sakinio pabaigoje
/* Komentaras per kelias eilutes,
jo pagalba galite pakomentuoti detaliau */
echo “Tai kitas testas”;
echo “Paskutinis testas”; # Štai čia dar vienas komentaro tipas
?>

Kategorijose: PHP pamokos, Programavimo pamokos

Trumpa PHP istorija

Viskas prasidėjo 1994 metų rudenį, kai Rasmus Lerdorf nusprendė patobulinti savo asmeninį puslapį ir parašyti asmeninį varikliuką, kuris atlikinėtų paprasčiausius veiksmus. Šį varikliuką parengė 1995 metų pradžioje ir pavadino “Personal Home Page Tools” (asmeninio puslapio įrankiai). Šie įrankiai mokėjo ne itin daug, ir jų galimybės buvo tik pačios paprasčiausios, sudarė juos vos keletas makrosų. 1995 metų viduryje atsirado antroji varikliuko versija, kuri vadinosi “PHP/FI version 2”. FI – dėl vienos priežasties: tiesiog Rasmus’as padarė papildomą paketą, kuris jau mokėjo interpretuoti formas (Form Interpretator). PHP/FI kompiliavosi į Apache Web serverį ir naudojo standartinį Apache API. PHP skriptai pasirodė spartesni serveryje, nei CGI, nes nereikėjo kurti naujo proceso. Po truputį PHP pradėjo lygintis savo galimybėmis su Perl (populiariausia kalba CGI rašymui). Bėgant laikui buvo pridėtas ir daugelio duomenų bazių palaikymas (MySQL, Oracle ir t.t.), interfeisas GD bibliotekai (parašytas Rasmus’o ir iki šiol kuruojamas jo) leido dinamiškai kurti paveiksliukus. PHP/FI labai greitai pradėjo plisti. 1997 metų pabaigoje Zeev Suraski ir Andi Gutmans nusprende perrašyti PHP varikliuką su tikslu ištaisyti daugelį klaidų bei pagreitinti PHP skriptų atlikimą serveryje. Po pusės metu, 1998 06 išejo nauja versija, kuri buvo pavadinta PHP3. NetCraft duomenimis, PHP 1999 metais naudojosi jau 1 mln. domenų. 1999 metų pabaigoje buvo perrašytas PHP3 varikliukas (pavadinimu Zend Engine) ir išleista nauja versija PHP4. Skirtumai tarp šių versijų yra tikrai dideli, kartu su pagrindiniu PHP branduoliu atsirado daugybė papildymų, ir jie vis dar nenusutojami tobulinti ir rašyti (pvz.: gd, xslt, sockets,imap, daugelio duomenų bazių palaikymas ir t. t.). 2000 05 išleistas PHP4 su Zend Engine 1.0 varikliuku, o 2004 07 išleistas PHP5 su Zend Engine II varikliuku. PHP vis dar nepalaiko Unicode, tačiau tai planuojama ištaisyti PHP6, bet šio išleidimo data dar nėra žinoma.

Kategorijose: PHP pamokos, Programavimo pamokos

Kas yra PHP?

PHP (PHP hypertext preprocessor) tai skriptinimo kalba (scripting language), kuri pačioje pradžioje buvo orentuota tik į internetą, nors šiuo metu ją galima “drąsiai” pavadinti programavimo kalba, kadangi ja pilnai galima programuoti ne tik internetui (web’ui). Pavyzdžiui, su PHP-GTK galima kurti pilnavertiškas Cross platformines programas su GUI (graphical user interface), bei konsolines programėles, mail wrapperius ir t. t.
PHP skriptai yra interpretuojami ir įvykdomi serverio pusėje. Pvz.:

<html>
<head>
<title>Pavyzdys</title>
</head>
<body>
<?php echo “Čia PHP skriptas”; ?>
</body>

Po šio skripto įvykdimo rezultate (naršyklėje) turėsime:

Čia PHP skriptas

Tai gana paprasta, bet naudos iš to – nulis. Pradžioje pagrindinis PHP privalumas prieš CGI buvo tai, kad PHP skriptas galėjo būti lengvai įterpiamas į HTML kodą, kai CGI reikėjo visą HTML išvesti iš CGI skripto. Kuo toliau, tuo rečiau PHP yra maišomas su HTML’u didesniuose projektuose, tam naudojami šablonai (template). Yra ir lietuviška šablonų klasė – phemplate. Apie ją daugiau informacijos rasite čia. PHP skirtumas nuo JavaScript yra tai, jog PHP skriptai yra atliekami serverio pusėje, o vartotojui yra grąžinamas rezultatas (HTML’u ar XML’u). Rezultatą vartotojas mato savo naršyklėje. Tuo tarpu, kai JavaScript yra pilnai perduodamas kliento mašinai (kompiuteriui) ir atliekamas klientinėje dalyje. PHP sintaksės pagrindai yra paiimti iš C, Perl, Java, todėl programavusiems šiomis kalbomis yra ypatingai lengva pradėti programuoti PHP.

PHP privalumai ir trukumai

Čia paminėti tik pagrindiniai privalumai ir trūkumai:

Privalumai:

a) PHP yra visiškai nemokamas;
b) PHP yra visiškai cross platforminis ( veikia įvairiose operacinese sistemose: Win, *nix, MacOS, Solaris, HP-UX, AIX ir t.t.);
c) PHP yra atviro kodo (open source) projektas, todėl jį plėtoja didelė grupė žmonių, tad iškilusios klaidos yra greitai ištaisomos, ir PHP sparčiai plečiasi;
d) kaip ir Cross platforminis, jis veikia ir ant daugelio WEB serverių: Apache, IIS, PWS, OmniHTTP, BadBlue ir t.t.;
e) išmokti PHP programavimo pagrindų yra labai lengva;
f) pasižymi dideliu greičiu serverio pusėje, bei dirbant su duomenų bazėmis;
g) nedideliuose projektuose PHP jūs paprastai galite įterpti į savo HTML;
h) sukurta daug papildymų kiekvienam gyvenimo atvejui;
i) kadangi PHP programuotojų yra be galo daug, daugumą jau parašytų skriptų galite rasti internete (HotScripts, FreeScripts, PHPClasses.upperdesign.com ir t. t.)

Trukūmai:

a) PHP yra interpretatorius;
b) kadangi PHP yra atviro kodo projektas, jūsų parašytas kodas yra laisvai prieinamas (skaitomas). Galima užkoduoti tekstą su ZendEncoder, bet tai kainuoja;
c) deja, PHP-GTK vis dar negali būti užkoduojami.

Kategorijose: PHP pamokos, Programavimo pamokos