PHP oinarrizko gida

No profile photo programatzen | 2006-12-11 12:33

PHP script (“gidoi”) lenguaia bat da, besteak beste, web orrien dinamismoa handitzeko diseinatua. Hasieran, web orrien mantenuan laguntzeko sortutako makro talde bat besterik ez zen, baina ordutik bere ezaugarriak hazten joan dira, datu base handiek osatzen duten lan-inguruak maneiatzeko gai den programazio lenguaia erabilgarri bat izateraino. Bere arrakasta, besteak beste, C programazio lenguaiaren sintaxiarekin duen parekotasunagatik, bere habiaduragatik eta bere sinplizitateagatik datorkio.

Web zerbitzarietan erabiltzen den script lenguaia bat da eta bertan exekutatzen da. Honegatik, PHP kodigoa duen orri bat zerbitzarian interpretatuko da bezeroari (kasu honetan, edozein nabigatzailerekin web orri bat ikustea eskatu duen erabiltzaile bat) bidali aurretik. Bezeroak jasotzen duen orrian ez du PHP kodigorik ikusgai, hau erabat interpretatua eta ordezkatua izan da eta web osoan ojiko HTML bakarrik ikus daiteke.

PHP kodigoa duten orrian erabiltzaileak ikusi aurretik aldatzen da, baldintza batzuen arabera. Horrela, orriaren ezaugarriak (kolorea, tabla kopurua eta egitura, etab…)aldatu ditzazkegu erabiltzaile jakin batzuen arabera edota MySQL bezalako datu base bat integratu orrian bertan. Laburbilduz, PHPk orri estatiko bat dinamiko bihurtzen du.

PHP Open Source teknologia bat da. Hau da, dohainekoa eta askea da, iturri-kodea ikusi eta alda daiteke, betiere PHP lizentzia betetzen bada.

PHP bi bertsio paralelotan hari da garatzen. 4 bertsioaren azken argitalpena 4.4.4 da eta 5 bertsioarena 5.1.5.


PHP LORTU

PHPren aplikazio nagusia zerbitzarien script lenguaia gisa da (web orrien sorreraren ingurukoa), baina edozein programazio lenguaia bezala erabil daiteke helburu anitzetarako.

PHP erabili nahi bada web orrietan, orri hauek jartzeko zerbitzari baten jabe izatea (edota sarbidea edukitzea) beharrezkoa da. Honetarako ez da beharrezkoa Interneten erregistraturiko web orri bat edukitzea, norberaren ordenagailuan zerbitzari bat instalatzea posible bait da, fitxategia lokalki edota sare bidez zerbitzatuz.

Hau egiteko era bat Apache Web Serveren bidez da, gaur egun erabiltzen den web zerbitzari softwarerik erabiliena.


OINARRIZKOA PHPN

PHP web orri bat osatzen duen HTML programan txertatutako kodigoa besterik ez da, zerbitzarian exekutatzen dena, nabigatzaileak (bezeroak) prozesatutako programaren emaitza jasoz. Ondorengo adibidearekin azalduko da hori:

HTMLz egindako web orri batean ondorengo scripta txertatuko dugu:


            <?php

            Echo “Ongietorri PHPren mundura”;

            ?>


Zerbitzariak behar bezala prozesatu ondoren, nabigatzaileak honakoa jasoko du soilik:


            Ongietorri PHPren mundura


PHP kodigoa interpretatua izan da eta zerbitzariak HTML ‘’garbi’’ gisa itzuli du. Irudimena erabiliz gero, ikus daitezke honek ze nolako hobekuntzak ekar diezaiozken ohizko web orriei: aurkezpenak personalizatu, datu baseetako informazioa ikusi eta manipulatu…

Oraingoz, lenguaiaren sintaxiarekin jarraituko dugu, ondorengo scripta aztertuz:


            <?php

            $NERE_ALDAGAIA = “1234”;

            $nere_aldagaia = “4321”;

           

            Echo $NERE_ALDAGAIA. “<br>”;

            Echo $nere_aldagaia. “<br>;

            ?>


Honakoa itzuliko du:


            1234

            4321


Scriptean nabarmentzen den lehen gauza,  PHP kodigoa ‘’<?php’’-rekin hasi eta ‘’?>’’-rekin amaizen dela da. Bi etiketa hauekin, HTML kodigoko  puntu ugaritan txerta daiteke PHP aginduak. Ikusten den beste ezaugarri bat, aldagai guztiak ‘’$’’ sinboloarekin asten direla da eta maiuskulak eta minuskulak ezberdintzen direla. Aldagaiak eta ‘’<br>’’ etiketak puntu “.” baten bidez lotuta daude, horrela nabigatzaileak lineako jauzi bat egingo du aldagaia idatzi ondoren. Azkenik, ikusi komando lerro bakoitza puntu eta koma “;” batekin amaitzen direla.

Ikusi adibide komplexuago hau:


            <?php

            $BAT1 = 12;

            $BAT2 = 4;

            $EMA = $BAT1 + $BAT2;

            Echo $BAT1 . “-ren eta “ . $BAT2 . “-en batura “ . $EMA . “ da”;

            //Programa honek 12 + 4 kalkulatzen du

            ?>


Programa txiki hau ez dago sakon azaldu beharrik: lehen eta bigarren aldagaiak definitzen ditu, bi aldagaien batura egin eta hirugarrenari atxikitzen dio eta azkenik hiru aldagaiak idazten ditu, textu apur bat txertatuz. Honakoa jasoko dugu:


            12-ren eta 4-en batura 16 da


Textuaren eta aldagaien nahasketa lortzeko konkatenatu egin dira puntu “.” Baten bidez. Ikusi komentario bat txertatu dela scriptean, “//”-ren ondoren dagoen textua. Ez du programan ezertarako eragiten, baina bere erabilera

gomendagarria izaten da programa luzeetan. Bi era daude komentarioak txertatzeko:


            //Hau lerro bateko komentarioa da

            //Hau ere bai

 

            /*Hau

            kerro ugariko

            komentarioa da*>

 

ALDAGAIAK PHPN

PHPn ez da beharrezkoa aldagaiak deklaratzea, hau da, ez dago zertan programari aldagaia zenbaki bat edo kate bat den esan beharrik, PHP bere kabuz definitzen bait du.

Adibidez:

            <?php

            $katea = “Kaixo mundua”;

            $osoa = 100;

            $hamartarra = 8.5;

            ?>

Ikus daitekenez, hiru aldagaiak balio batekin izan dira definituak eta ez tipoarekin.

Aldagai baten eremua scriptean duen lekua da. Eremu globalekoa denean, scripteko zati guztietan du bere lekua eta edozein tokitan erabil daiteke; baina lokala bada, funtzio jakin baten barnean soilik existitu eta funtzionatuko duela esan nahi du, ezin izango delarik script nagusitik edo beste funtzioetatik deitu.

Aldabai global bat deitzeko, ‘’global’’ hitz gakoa erabil daiteke, nahiz eta edozein funtzioetatik kanpo deklaratzearekin nahikoa da.


            <?

            Global $aldagai;       //Aldagai globala da

            $zenbaki = 1;            //Hau ere bai, nahiz eta ez deklaratu global bezala

 

            Function bidertu()

            {

                        $biderketa = ($zenbaki * 50);

//biderketa aldagaia bidertu funtzioan existitzen da soilik

Echo $biderketa;

            }

            ?>


Adibide honetan garbi ikusten da aldagai baten eremua noiz den globala eta noiz lokala. ‘’$zenbaki’’ aldagaia edozein funtzioren barruan zein kanpoan erabil daiteke, ‘’bidertu()’’ funtzioan erabil daitekelarik. Bestalde, ‘’$biderketa’’ aldagaia ‘’bidertu()’’ funtzioaren barruan erabil daiteke soilik, ez baita existitzen eremu horretatik kanpo.

Aldagaien gaiarekin amaitzeko ‘’array’’ edo bektoreaki ikusiko ditugu. Elementu ugari aldi berean gorde ditzazkeen aldagai bereziak dira.


            <?php

            $abere = array();      //array()-rekin aldagaia bektorea dela adierazten da

            $abere[0] = “Katua”;

            $abere[1] = “Zakurra”;

            $abere[2] = “Oiloa”;

            ?>


‘’$abere” arrayaren elementu bakoitza lortzeko, arrayaren izena eta kortxete hartean dagoen zenbaki bat idatzi beharko dira, arrayean elementu horrek duen posizioa adierazten duena. Horrela, ‘’$abere’’ bektore bat den arren, ‘’$abere[0]’’ arrayeko elementu bat da, “Katua” katea balio gisa duena.

Bektoreak oso erabilgarriak dira elementu bakoitzarentzat aldagai bat sortu beharrean, denentzat komun bat erabiltzeko. Horrela, gure adibidean ez genuke ‘’$Katua”, “$Akerra”, “$Behia” bezalako aldagairik sortu beharko.


OPERATZAILEAK PHPN

Operatzaileak eragiketa matematiko zein logikoak (konparaziokoak) egiteko erabiltzen diren sinbolo bereziak dira. Ondoren, PHPko erabilienak:

+ Batuketa
5 + 4 = 9
- Kenketa 5 – 4 = 1
* Biderketa 3 * 3 = 9
/ Zatiketa 10 / 2 = 5
% Ondarra 10 % 3 = 1
++ Bat gehitu
$ald++
-- Bat kendu
$ald--
==
"true" itzultzen du baldintza betetzen bada
2 == 2 (Egia)
!=
"true" itzultzen du baldintza ez bada betetzen
2 != 2 (Gezurra)
< "true" zenbaki bat bestea baino txikiagoa bada
2 < 5 (Egia)
> "true" zenbaki bat bestea baino handiagoa bada
6 > 4 (Egia)
<= "true" zenbaki bat bestea baino txikiagoa edo berdin bada 2 <= 2 (Egia)
>= "true" zenbaki bat bestea baino txikiagoa edo berdin bada 2 >= 2 (Egia)

KONTROL EGITURAK

Kontrol egiturei esker, frogapenak egin eta kodigo bereziak exekuta ditzakegu, gure scriptak benetan baliagarri bilakatuz. Egituren artean baldintza eta bukle funtzioak aurki ditzakegu. Hauek tratatuko ditugu.

BALDINTZAK

Baldintzak, sententzia baten “egitasunaren” arabera, akzio jakin batzu egiten uzten duten egiturak dira. Erabilienak, beste hizkuntzetan bezala, ‘’if … else’’ eta ‘’switch’’ dira.


            <?php

            $a = 5;

            $b = 2;

 

            If($a == $b)

            {

                        echo “2 eta 5 berdinak ?! Arraroa benetan”;

            }

            Else

            {

                        echo “2 eta 5 logikoki ezberdinak dira”;

            }

            ?>


‘’If’’ instrukzioak sententziaren “egiatasuna” baieztatzen du. Lehenago aipatu den bezala, “==” operatzaileak ‘’true’’ itzultzen du ‘’$a’’ eta ‘’$b’’ berdinak badira. Hau gertatuko balitz, ondoren datorren textua idatziko luke. Sententzia ez bada betetzen ordea, ‘’else’’-ren ondoren datorren kodigoa exekutatuko litzateke.

Laburbilduz, ‘’if…else’’ instrukzioa honela defini genezake:


            <?php

            If (sententzia)

            {

                        egia balitz exekutatu beharrekoa

            }

            Else

            {

                        Gezurra balitz exekutatu beharrekoa

            }


‘’Switch” berriz ‘’if…else’’ren luzapen bat bezalakoa da, bi bide baino gehiagoren posibilitatea ahalbidetzen duena.


            <?php

            $a = 1;

 

            Switch ($a)

            {

                        Case 0:

                                   Echo “a berdin 0”;

                                   Break;

                        Case 1:

                                   Echo “a berdin 1”;

                                   Break;

                        Case 2:

                                   Echo “a berdin 2”;

            }

            ?>


BUKLEAK

Bukle bat, baldintza jakin bat bete arte akzio bat etengabe exekutatzen duen instrukzio bat da. Bi bukle mota daude, ‘’for’’ eta ‘’while’’.

‘’While’’ buklea da sinpleena:


            <?php

            $a = 3;

            While($a < 7)

            {

                        Echo “a-ren balioa “ .$a . “ da momentu honetan <br>”;

                        $a++;

            }

            ?>


‘’While’’ buklea parentesis hartean dagoen sententzia egia den bitartean, hau da, ‘’$a’’-ren balioa 7 baino txikiagoa den bitartean errepikatuko da. Buklearen “bira” bakoitzean, textu bat idatziko du eta ‘’$a’’-ren balioa unitate batean gehituko da ($a++). Horrela, hasierako balioa 3 izanik, buklea lau aldiz errepikatu ondoren, ‘’$a’’-ren balioa 7 izango da eta orduan buklea exekutatzez utziko dio.

Ekintza bera ‘’for’’ batez bidez honela egingo litzateke:


            <?php

            For ($a = 3; $a < 7; $a++)

            {

                        Echo “a-ren balioa “ .$a . “ da momentu honetan <br>”;

            }

            ?>


Parentesi artean aldagaiaren hasierako balioa, bete beharreko baldintza eta “bira” bakoitzean aldagaiak nozitutako aldaketa jartzen zaizkio.

 

FUNTZIOAK

Amaitzeko, funtzioak nola erabiltzen diren aztertuko da, bai ohikoak baita errekurtsiboak ere, balio bat itzultzen dutenak.

 

PHPko funtzioek parametroak izan ditzakete edo ez, errekurtsiboak diren ala ez determinatzen dutenak. Parametroak bidaltzen bazaizkio eta hauek balio bat itzultzen uzten badute, funtzioa errekurtsiboa dela esaten da, bestela ohikoa izango litzateke. Nagusiki, funtzioak kodigo errepikakorrak scriptean behin eta berriz idaztea eragozteko erabiltzen da, honen ordez funtzioari deituz.

Funtzio bat ‘’function’’ izen gakoarekin definitzen da eta bere instrukzioak gakoen artean idazten dira, kontrol egituretan bezala. Ikusi ondorengo adibidea:


            <?php

            Function BaturaErrekurtsiboa($a, $b)

            {

                        $batura = $a + $b;

                        Return $batura;

            }

 

            Function Bigeibi()

            {

                        $batura = baturaErrekurtsiboa(2,2);

                        Echo $batura;

            }

            ?>


‘’BaturaErrekurtsiboa’’ funtzioari bi parametro pasa behar zaizkio, berak bien batura kalkulatzen duelarik. Ondoren, baturaren balioa itzultzen du ‘’return’’ hitz gakoarekin. ‘’Bigeigi’’ funtzioak berriz, ‘’BaturaErrekurtsiboa’’ funtzioari deitzen dio 2 eta 2 balioekin, eta idatzi egiten du, baliorik itzuli gabe.



FORMULARIOEN INFORMAZIOA JASOTZEN

Web oirren erabilgarritasunik nabarmenena formularioen erabilera da, hau da, erabiltzeaileek "plantilla" batean bete duten informazioa  bidaltzea. Formularioak sortzen ikasteko, begiratu blog honetako "HTML oinarrizko gida". Informazio hau jasotzeko, PHP lenguaia erabil daiteke, honako metodoekin:

GET

URLean katiaturik datozten datuak jasotzeko balio du. Adibidez:

          -------------bidali.php-----------------
          <a href="jaso.php?izena='Gorka'&abizena='Murua'">Joan</a>

          -------------jaso.php-----------------
          <?php
                   $izena = $_GET["izena"];
                   $abizena= $_GET["abizena"];
          ?>

POST

Formularioen bidez bidalitako datuak jasotzeko balio du. Adibidez:

          -------------bidali.php-----------------
          <form action="jaso.php" method="post">
                   <input type="text" name="izena">
                   <textarea name="komentarioak"></textarea>
          </form>

          -------------jaso.php-----------------
          <?php
                   $izena = $_POST["izena"];
                   $komentarioak = $_POST["komentarioak"];
          ?>


 


Utzi iruzkina: