2007/05/16 13:15:02.500 GMT+2
XML, etiketen lenguaia edagarria (
eXtensible Markup Lenguage)
World Wide Web Consortiumek (W3C) garatutako etiketen metalenguaia edagarri bat da. Ez da lenguaia partikular bat HTML izan daitekeen bezala, behar jakin batzuetara moldatzeko lenguaiak definitzeko era bat baizik, hau da, lenguaiak definitzeko lenguaia bat. Berau osatzen duten elementuek beraien edukiari buruzko informazioa eman dezakete, ez dute zerbat beraien egitura fisiko edo aurkezpenaren buruzkoa eman behar HTMLan bezala.
XMLa ez da Internetera aplikatzeko sortu, plataforma ezberdinen arteko informazioaren elkartrukerako maila baxuko lenguaia (aplikazioaren mailan, ez programazioarenean) gisa baizik. Datu baseetan, textu editoreetan, kalkulu orrietan eta pentsa dezakegun edozein aplikazio motetan erabil daiteke.
EGITURA
XML dokumentu batek bi egitura ditu, bata logikoa eta beste fisikoa. Fisikoki, dokumentua entitate izeneko unitateetan banatuta dago, dokumentu bakoitza "erroa" (
root) izeneko entitate batekin hasten delarik. Entitate batek beste bati erreferentzia egin diezaioke, hau dokumentura gehitzen delarik. Logikoki, dokumentua deklarazioz, elementuz, komentarioz, karaktereen erreferentziez eta prozesamentu aginduez osatuta dago, bakoitzak bere marka duelarik. Bi egitura hauek, fisikoak eta logikoa, era egokian etorri behar dute bat.
XML dokumentuak bi taldetan banatzen dira, ongi eratuak eta baliozkoak.
*
Ongi eratuak: DTD batean (Documente Type Definition) finkatatutako elementuen menpe egon gabe erregela sintaktikoei buruzko espezifikazio guztiak betetzen dituzten dokumentuei deritze.
*
Baliozkoak: ongi eratuta egoteaz gain, DTD batek determinatutako egitura eta semantika bat jarraitu behar dute.
Hona hemen adibide errez bat:
<?xml version=" 1.0 " encoding=" UTF-8 " standalone= " yes "?>
<fitxa>
<Izena> Itxaso </Izena>
<abizena> Goitia </abizen>
<helbidea> Aker kalea, 17 </helbidea>
</fitxa> Ikus leen lerroa. Lerro honetatik aurrera dagoen kodea XML dela adierazten du. Aukerazkoa den arren, sartzea gomendatzen da. Atributu ugari izan ditzake, batzuk nahitaezkoak eta besteak ez:
*
version: dokumentuan erabilitako XMLaren bertsioa adierazten du. Nahitaez jarri behar da, iada adierazten zuen beste dokumentu baten kanpo dokumentu bat ez bada behintzat.
*
encoding: dokumentua kodifikatu den era. Defektuz UTF-8 da, baina besteren bat jarri daiteke, UTF-16, US-ASCII, ISO-8859-1, ... Ez da nahitaezkoa, kanpo dokumentu bat ez den bitartea.
*
standalone: dokumentua DTD batekin ("no") edo gabe ("yes") datorren adierazten du. Berez ez dago jarri beharrik, DTDa behar denean adierazten bait da geroago.
"Dokumentu mota deklarazioaan" ze dokumentu mota sortzen hari garen definitzen du, behar den bezala prozesatzeko. Hau da, gure XMLko datuak ze dokumentu mota deklaraziok (
DTD) balidatu eta definitzen dituen adierazten dugu. Bertan dokumentu mota eta bere DTD non aurkitu adieratzen da, honakoen bidez:
* Identifikatzaile publiko bat (PUBLIC): DTDra erreferentzia egiten duena.
* Errekurtsoen identifikatzaile unibertsala (URI): SYSTEM hitza aurretik duela.
Adibideak:
<!DOCTYPE MESAJE SYSTEM "message.dtd">
<!DOCTYPE HTML PUBLIC "-/ /W3C/ /DTD HTML 3.2 Final/ /EN">
<!DOCTYPE LABEL SYSTEM "http://www.blogak.com/programatzen/dtds/label.dtd">ONGI ERATUTAKO XML DOKUMENTUAK
XML dokumentu bat produkzioareko XML espezifikazioekin bat baldin badator bat ongi eratuta dagoela esaten da, honakoa bete behar duelarik:
Elementuen egitura hierarkikoa
Elementuak mugatzen dituzten etiketei dagokienez, XML dokumentuak egitura hierarkiko zorrotz bat jarraitu behar dute. Etiketa bat beste baten "barruan" egon behar du, eta aldi berean, edukia duten elementu guztiak egoki itxita egon behar dute. Ondoren, adibide ezegoki bat eta ondo idatzita dagoen bat:
<li>HTMLk <b> honakoa <i> uzten du</b> </i>.
<li>XMLn <b> egitura<i> es </i> hierarkikoa da</b>.</li>Etiketa hutsak
HTML eduki gabeko elementuak onartzen ditu. XMLk baita, baina etiketak honako forma eduki behar du <elementu hutsa/>. Ondoren, adibide ezegoki bat eta ondo idatzita dagoen bat:
<li>Hau HTML da <br> lasaikeria hutsa </li>
<li>XML <br/> zorrotzagoa da</li>Erro elementu bakarra
XML dokumentuek erro elementu bakarra onartzen dute, gainontzekoak bere zati direlarik.
Atributuen balioak
Atributuen balio guztiak kakots bakar (') edo bikoitzen (") hartean joan behar dute beti. Ondoren, adibide ezegoki bat eta ondo idatzita dagoen bat:
<a HREF=http://www.blogak.com/programatzen>
<a HREF="http://www.blogak.com/programatzen"> Letra motak, espazio zuriak
XMLk erabiltzen den letra mota nabaritzen du, hau da, letra xehe eta larriak karaktere ezberdin bezala tratatzen ditu. Horrela, "FITXA", "Fitxa", "fitxa" eta "fiTXa" elementu ezberdinak lirateke.
"Espazio zuriak" izeneko karaktere multzo bat ere bada, XML prozesagailuek markaketan ezberdin tratatzen dituztenak. Karaketere hauek espazioak, tabulatzaileak, return-ak eta lerro jauziak dira. XML 1.0 espezifikazioak "espazio zuri" hauen erabilera ahalbidetzen du kodea ulergarriago egiteko, nahiz eta prosegailuek ez dituzten kontutan hartuko.
Elementuak izendatzen
XML erabiltzean, beharrezkoa da estrukturei, elementu motei, entitateei, etab... izenak esleitzea. XMLn izenek ezaugarri amankomun batzu dituzte.
Ezin da "xml", "xML", "XML" edo beste edozein aldaeraz hasten den izenik sortu. Letrak eta marrak izenaren edozein zatitan erabil daitezke. Digituak, marratxoak eta puntuak ere erabil daitzeko, baina ezin dute izenaren lehen karakterea izan. Gainontzeko karaktereak, espazio zuriak edo beste hainbat sinbolo, ezin dira erabili.
Markaketa eta datuak
Etiketen "eraikinei", entitateen erreferentziei eta deklarazioei "markak" deritze. XML prozesagailuak itxaroten dituen dokumentuaren zatiak dira. Marken artean dagoen gainontzeko guztia pertsonentzat ulergarri diren datuak dira.
Erreza da XML dokumentu batean markak antzematea. "<" hasi eta ">" amaitzen diren edota (entitate erreferentzia diren kasuan) "&" hasi eta ";" amaitzen diren kode zatia dira.
ELEMENTUAK
XML elementuak edukia izan dezakete (elementu gehiago, karaktereak, edo biak) edo hutsak izan daitezke. Edukidun adibide bat:
<izena>Itxaso Arrillaga</izena>
<mezua mota="deialdia" larritasuna="handia">Etorri hadi segituan hona</mezua>Beti <etiketa> batekin hasi beharra dago, atributuak eduki ditzazkena (edo ez), eta izen bereko </etiketa> batekin amaitu. HTMLn ez bezala, XML elementu bat itxi beharra dago nahitaez. "<" sinboloa XML etiketa baten hasiera bezala interpretatuko da beti. Ez bada horrela, dokumentua ez da ondo eratuta egongo.
Aldiz, elementu huts bat, edukirik gabekoa, honakoa litzateke:
<identifikatzailea NAN="12345678"/>
<lerro-horizontala/>Ez edukirik ez itxiera etiketik duenez, <etiketa/> forma erabiltzen da, atributuak eduki ditzazkena (edo ez). HTMLn <hr> edo <img src="..."> bezalako etiketa hutsak onartuta dauden arren, ondo eratutako XML dokumentu batean <hr/> edo <img src="..."/> erabili beharko litzateke.
ATRIBUTUAK
Lehenago aipatu den bezala, elementuek atributuak eduki ditzakete, ezaugarriak eta propietateak gehitzeko modu bat direlarik. Adibidez, "liburu" elementu batek "mota" eta "kalitatea" atributuak eduki ditzake, "beldurrezkoa" eta "ederra" balioekin.
<liburu mota="beldurrezkoa" kalitatea="exkaxa">The Very Old Folks, H.P. Lovecraft</liburu>Dokumentu Mota Deklarazio baten, elementu mota bakoitzak eduki ditzakeen atributuak zeazten dira, baita bere balioak eta balio mota posibleak ere.
Batzuetan, edukidun elementu bat atributudun elementu huts bezala modelatu daiteke:
<zakurra><izena>Printzesa</izena><arraza>Bulldog frantziarra</arraza></zakurra>
<zakurra arraza="Bulldog frantziarra">Printzesa</zakurra>
<zakurra arraza="Bulldog franziarra" izena="Printzesa"/>AURREZ DEFINITUTAKO ENTITATEAK
XML 1.0n karaktere bereziak errepresentatzeko bost entitate definitzen dira, XML prozesagailuak markaketa bezala interpretatuko ez dituztenak. Horrela, "<" karakterea erabili dezakegu, XML etiketa bat bezala interpretatua izan gabe.
| Entitatea |
Karakterea |
| & |
& |
| < |
< |
| > |
> |
| ' |
' |
"
|
" |
CDATA ATALAK
Bada XMLn egitura bat XML markaketa bezala interpretatu gabe edozein karaktere erabilita datuak espezifikatzea ahalbidetzen duena. CDATA (Character DATA) izeneko egitura honen arrazoia askotan XML garatzaileek askotan dokumentuak entitate kodeak deszifratzen ibili gabe irakurri behar izaten dutela da. Adibide gisa, ikusi ondokoa (lehen aurrez definitutako entitatea erabiliz eta gero CDATA bloke batekin):
<parrafoa>Hurrengoa HTML adibide bat da.</html>
<adibidea>
<html>
<head><title>Rock & Roll</title></head>
</adibidea> <adibidea>
<![CDATA[
<html>
<head><title>Rock & Roll</title></head>
] ]>
</adibidea>CDATA sekzioaren barnean edozer gauza ipini dezakegu, textu soil gisa interpretatua izango bait da. "] ]>" katea da salbuespen bakarra, CDATA blokearen amaiera adierazten bait du.
KOMENTARIOAK
Batzuetan komentarioak txertatu behar izaten dira XML dokumentuetan, informazioaren prozesagailuak eta dokumentuaren erreprodukzioak kontutan hartuko ez dituztenak. HTML bezala idaztem dira, "<!--" hasi eta "-->" bukatu.
DOCUMENT TYPE DEFINITION (DTD)
Dokumentu mota definizio (DTD) bat sortzea, aplikazio jakin batetarako gure markaketa leguaia propios sortzea bezala da. Adibidez, bisita txartel bat definitzen duen DTD bat eduki dezakegu. DTD hau oinarri gisa harturik, txartelak definitzea ahalbidetuko diguten XML elementu sorta bat edukiko genuke.
DTDak elementu motak, atributuak eta baimendutako entitatea definitzen ditu, eta hauek konbinatzeko mugak adierazi ditzake.
Bere DTDra doitzen diren dokumentuak "baliozkoak" deitzen dira. "Baliotasun" kontzeptuak ez du zerikusirik "ondo eratuta" egotearekin. "Ondo eratutako" dokumentu batek XML espezifikazioaren egitura eta sintaxia errespetatzen du soilik. "Ondo eratutako" dokumentu bat "baliozkoa" izan daiteke DTD jakin baten arauak jarraitzen baditu. Badaude DTD atxikituta ez duten XML dokumenturik, "ez baliozkoak" izango liratekenak.
DTD bat kanpo fitxategi batean egon daiteke, agian dokumentu askok elkartrukatua. XML dokumentuan bertan ere egon daiteke, bere dokumentu mota deklarazioko kide.
Ikus ondorengo adibidea:
<! DOCTYPE etiketa[
<!ELEMENT etiketa (izena, kalea, herria, kodea)>
<!ELEMENT izena (#PCDATA)>
<!ELEMENT kalea (#PCDATA)>
<!ELEMENT herria (#PCDATA)>
<!ELEMENT kodea (#PCDATA)>
]> <etiketa>
<izena>Uraitz Zabala</izena>
<kalea>Zintzarri kalea, 23</kalea>
<herria>Durango</herria>
<kodea>12345</kodea>
</etiketa>Dokumentu mota deklarazioa lehen lerroan hasten da eta "]>" katearekin amaitzen. DTD deklarazioak "<!ELEMENT" katearekin hasten diren lerroak dira, elementu mota deklarazioak deitzen direlarik. Atributuak, entitateak eta DTD batetarako oharrak ere deklaratu daitezke.
Aurreko adibidean, DTD deklarazio guztiak dokumentuaren barnean daude, baina posible da DTDa beste batean definitzea (osoa edo zati bat). Adb.:
<?xml version="1.0"?>
<!DOCTYPE coche SYSTEM "http://www.autoak.com/dtd/autoa.dtd">
<autoa>
<modeloa>...</modeloa>
...
</autoa>ELEMENTU MOTA DEKLARAZIOAK
Elementuak XML marken oinarri dira, eta baliozko bezala kontutan hartzeko, DTD batean deklaratutako dokumentu mota batetara doitu behar du.
Dokumento mota deklarazioak "<!ELEMENT" kate batekin hasi behar dute, deklaratzen den elementuaren identifikatzailea jarraian jarriko delarik. Ondoren edukiaren espezifikazioa bat dute. Adb.:
<!ELEMENT albiste (izenburua, sarrera, gorputza)>Adibide honetan, <albiste> elementuak <izenburua>, <sarrera> eta <gorputza> elementuak ditu bere baitan, hauek ere DTDan definituak egongo direlarik eta barnean elementu geiago eduki ahal dituztelarik. Adibideko elementuaren definizioa jarrituz, honakoa izango litzateke baliozko XML dokumentua:
<albiste>
<izenburua>...</izenburua>
<sarrera>...</sarrera>
<gorputza>...</gorputza>
</albiste> Baina hau ez:
<albiste>
<paragrafoa>Ez dakit zer egiten dudan hemen</paragrafoa>
<izenburua>...</izenburua>
<sarrera>...</sarrera>
<gorputza>...</gorputza>
</albiste>Edukiaren espezifikaizoa lau motatakoa izan daiteke:
EMPTY
Posible da edukirik ez edukitzea. Atributuetarako erabili ohi da.
<!ELEMENT lerroa EMPTY>ANY
Edozein eduki eduki dezake (apur bat erredundantea, badakit). Ez da erabiltzen normalean, gure XML dokumentuak egoki estrukturatu behar bait dira.
<!ELEMENT denetik_zerbait ANY>Mixed
Dato motako karaktereak edo eduki nahasiaren espezifikazioan espezifikatutako azpi-elementuen eta karaktereen arteko nahasketa bat izan daiteke.
<!ELEMENT garrantzia (#PCDATA)>
<!ELEMENT paragrafoa (#PCDATA|garrantzia)>Adibidean definitutako lehen elementuak (<garrantzia>), (#PCDATA) motako datuak eduki ditzake. Bigarrenak (<paragrafoa>) bai (#PCDATA) motako datuak bai <enfasis> motaren azpi-elementuak eduki ditzake.
Element
Edukiaren espezifikazioan espezifikatutako azpi-elementuak bakarrik eduki ditzake.
<!ELEMENT mezua (nork, nori, textua)>EDUKIAREN EREDUAK
Eredu bat onartutako azpi-elementuak eta hauen ordena ezartzen dituen eredu bat da. Eredu soil batek azpi-elementu bakar bat eduki dezake:
<!ELEMENT mezu (paragrafo)> Honen arabera, <mezu> elementuak <paragrafo> bakar bat eduki dezake.
<!ELEMENT mezu (izenburu,paragrafo)>Komak sekuentzia adierazten du. <mezu> elementuak <izenburu> bat eduki behar du eta jarraian <paragrafo> bat.
<!ELEMENT mezu (paragrafo | irudi)>Makila bertikala aukera adierazten du. Hau da, <mezu>k elementuak <paragrafo> edo <irudi> bat eduki dezake. Bi aukera soilik daude eta parentesiak erabiliz multzokatu daitezke.
<!ELEMENT mezu (izenburu, (paragrafo | irudi))>Azken adibide honetan, <mezu> elementuak <izenburu> bat eduki beharra du eta ondoren <paragrafo> edo <irudi> bat.
Gainera, edukiko elementu bakoitzak frekuentzia adierazle bat eduki dezake:
Frekuentzia adierazleak
| ? |
aukerazkoa (0 edo 1 aldiz) |
| * |
aukerazkoa eta errepikagarria (0 aldiz edo gehiago) |
| + |
beharrezkoa eta errepikagarria (behin aldiz edo gehiago) |
<!ELEMENT mezu(izenburu?, (paragrafo+, irudi)*)>Adibide honetan, <mezu> elementuak <izenburu> eduki dezake edo ez (izatekotan bakarra), eta <paragrafo><irudi>, <paragrafo><paragrafo><irudi>... talde ugari eduki ditzake.
ATRIBUTUEN ZERRENDAREN DEKLARAZIOAK
Atributuek dokumentu bateko elementuei informazio gehigarria txertatzea ahalbidetzen dute. Elementuen eta atributuen arteko ezberdintasun nagusia atributu batek ezin duela azpi-atributurik eduki da. Informazio labur, soil eta desegituratua txertatzeko erabiltzen dira.
<mezu garrantzia="handia">
<nork>Izaro Sarasola</nork>
<nori>John Brown</nori>
<textua hizkuntza="ingelesa">
Hello John, how are you going?
...
</textua>
</mezua> Beste ezerdintasun bat, atributu bakoitza behin bakarrik espezifikatu ahal daitekela da, edozein ordenetan. Aurreko adibidean, <mezu> eta <textua> elementuen atributu zerrenda deklaratzeko honakoa egingo genuke:
<!ELEMENT mezu (nork, nori, textua)>
<!ATTLIST mezu garrantzia (normala | handia) normala>
<!ELEMENT textua (#PCDATA)>
<!ATTLIST textua hizkuntza CDATA #REQUIRED>Atributuen deklarazioak "<!ATTLIST" katearekin hasten dira, ondoren atributua aplikatzen zaion elementuaren identifikatzailea etorriko delarik. Gero atributuaren izena, mota eta defektuzko balorea dator. Adibideko "garrantzia" atributuak "normala" edo "handia" balioak eduki ditzake, baina defektuzk balioa "normala" izango du ez badugu atributua zehazten. "hizkuntza" atributua "textua"rena da eta CDTA motako datuak eduki ditzazke. #REQUIRED hitzak ez duela defektuzko baliorik esan nahi du, atributu hau zehaztea nahitaezkoa bait da.
ATRIBUTU MOTAK
CDATA eta NMTOKEN atributuak
CDATA (Character DATA) atributuak dira soilenak, ia edozein gauza eduki ditzakete. NMTOKEN (NaMe TOKEN) atributuak antzekoak dira, baina gauzak izendatzeko karaktereak soilik (letrak, zenbakiak, puntuak, gidoiak, azpimarratuak eta bi puntuak) onartzen ditu.
<!ATTLIST mezu eguna CDATA #REQUIRED>
<mezu eguna="2007ko maiatzaren 14a"> <!ATTLIST mezu eguna NMTOKEN #REQUIRED>
<mezu eguna="2007-5-14">Atributu zenbakituak eta oharrak
Atributu zenbakituak balioa aukera kopuru murriztu batekoa dutenak dira.
<!ATTLIST mezu garrantzia(normala | handia) normala>Bada antzeko beste atributu bat, oharra izenekoa (NOTATION). Atributu mota honek egileari bere balioa deklaratutako ohar batetara doitzen dela deklaratzea ahalbidetzen dio.
<!ATTLIST mezu eguna NOTATION (ISO-DATE | EUROPEAN-DATE) #REQUIRED>Oharrak deklaratzeko "<!NOTATION" erabiltzen da oharraren kanpo definizio gisa.
<!NOTATION HTML SYSTEM "http://www.w3.org/Markup">
<!NOTATION HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> ID eta IDREF atributuak
ID motak mota jakin batek izen bakar bat edukitzea ahalbidtzen du, IDREF motako beste elementu baten atributuak erreferentziatu ahalko duena. Adibidez, dokumentu bateko esteka sistema soil bat inplementatzeko:
<!ELEMENT esteka EMPTY>
<!ATTLIST esteka helburua IDREF #REQUIRED>
<!ELEMENT atala (paragrafoa)*>
<!ATTLIST atala erreferentzia ID #IMPLIED>Kasu honetan, <esteka helburua="3-sekzioa"> etiketak <atala erreferentzia="3-sekzioa"> etiketari egingo lioke erreferentzia, XML prozesagailuak esteka bilakatuko lukelarik.
ENTITATEEN DEKLARAZIOA
XMLk entitaeen bidez sintaktikoki XML erregelen arabera aztertu behar ez diren objetuei (fitxategia, web orriak, irudia,...) egiten die erreferentzia. "<!ENTITY" erabiliz deklaratzen dira DTDan. Entitate bat texto batzuen forma labur gisa erabiltzen den laburdura soil bat izan daiteke. Entitate honetara erreferentzia egitean, analizatzaile sintaktikoak erreferentzia edukiagatik ordezkatzen du. Beste kasu batzuetan erreferentzia kanpo edo barneko objetu batera da.
Entitateak honakoak izan daitezke:
* Barnekoak edo Kanpokoak
* Aztertuak edo Ez aztertuak
* Orokorrak edo Parametroak
Barne entitate orokorrak
Soilenak dira. XML dokumentuaren DTDaren zatian definitutako laburdurak dira. Erreferentzia edukiagatik aldatua izan ondoren, XML dokumentuaren zati izatera pasatzen dira eta honela aztertzen du XML prozesagailuak.
<!DOCTYPE textua [
<!ENTITY Mikelen "munduko baburik handienaren">
]>
<textua><izenburua>Egun bat &Mikelen bizitzan</izenburua></textua> Aztertutako kanpo entitate orokorrak
Kanpo entitateek beraien edukia sistemako beste edozein tokitatik ateratzen dute (disko gogorretik, web orri batetik, datu base batetik...). SYSTEM hitzaren bitartez egiten da erreferentzia edukiari, URI (Universal Resource Identifier) bat ondoren ipiniz.
<!ENTITY intro SYSTEM "http://www.nerezerbitzaria.com/sarrera.xml">Entitate ez aztertuak
Entitatearen edukia MPG artxibo bat, GIF irudi bat edo EXE exekutagarri bat bada, XML prozesagailuak ez luke XML textua balitz bezala interpretatzen saiatu behar. Entitate mota hauek beti orokorrak eta kanpokoak dira.
<!ENTITY logo SYSTEM "http://www.nerezerbitzaria.com/logo.xml">Barneko eta kanpoko parametro entitateak
Parametro entitate gisa DTDan bakarrik (ez XML dokumentuan) erabil daitezkeen entitateei deritze. Asko errepikatzen diren DTDko elementu batzu taldekatzeko erabil daitezke. "%" sinboloa erabiltzen da, entitate orokorretako "&"ren ordez.
<!DOCTYPE textua [
<!ENTITY % elementua-Mikelen "<!ELEMENT ALF (#PCDATA)>">
...
%elementua-Mikelen;
]>Kanpokoa ere izan daiteke:
<!DOCTYPE textua [
<!ENTITY % elementua-Mikelen;SYSTEM "Mikelen.ent">
...
%elementua-Mikelen;
]> DTD ADIBIDEAK
Ondoren, posta helbideen datu base baten markaketa lenguaia definitzen duen DTD baten adibidea ikusiko dugu.
ZERRENDA.DTD fitxategia horrelako zerbait izango litzateke:
<?xml encoding="UTF-8"?>
<!ELEMENT zerrenda (pertsona)+>
<!ELEMENT pertsona (izena, email*, erlazioa?)>
<!ATTLIST pertsona id ID #REQUIRED>
<!ATTLIST pertsona sexua (gizonezkoa | emakumezkoa) #IMPLIED>
<!ELEMENT izena (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT erlazioa EMPTY>
<!ATTLIST erlazioa lagunak IDREFS #IMPLIED
etsaiak IDREFS #IMPLID>DTD honetan oinarrituta, gure zerrenda XML bidez honela idatziko genuke:
<?xml version="1.0"?>
<!DOCTYPE listin SYSTEM "zerrenda.dtd">
<zerrenda>
<pertsona sexua="emakumezkoa" id="Eki">
<nombre>Ekiñe Garmendia</nombre>
<email>mutturgorri@euskalerria.org</email>
<erlazioa lagunak="Iñaki">
</pertsona>
<pertsona sexua="gizonezkoa" id="Iñaki">
<nombre>Iñaki Leunda</nombre>
<email>iLeunda@euskalerria.org</email>
</pertsona>
</zerrenda>
Posted by: galustiza.2007/05/16 13:15:02.500 GMT+2
Tags:
xml
euskara
gidaliburu
programazio
eb
lenguaia
informatika
html
gida
| Permalink
| Comments (0)
| References (0)
2007/02/08 15:40:54.605 GMT+1
Egilea: Gorka Alustiza
SARRERA
JavaScript web garapenaren munduan asko erabiltzen den programazio lenguaia bat da, bai lan txikiak egiteko bai aplikazio komplexuak kudeatzeko. JavaScript lenguaia, sistema operatzailean exekutatzen diren gainerako lenguaiak ez bezala, web orriak ikusteko erabiltzen dugun nabigatzaileak exekutatzen du. Adibidez, HTML kodean txertaturik, erabiltzaileak eragindako ebentuen edo formularioen kudeaketa eraman dezakegu, lehio ezberdinetako web oirrien hartean informazioa elkarbanatu, grafikoak edo textua manipulatu, Flash, Shockwave, etab... plug-inekin komunikatu...
Javascriptek beste goi mailako hizkuntzekin ezaugarri asko ditu amankomunean. Bai formatuan bai sintaxian C, Java edo PHPren antza handia du.
Bere aurkari nagusia
Visual Basic Script da. Microsoftek garatuta eta
Basic lenguaiean oinarrituta, Internet Explorer nabigatzailearekin soilik erabil daiteke. Horregatik, JavaScript da dudarik gabe gure horri dinamikoentzat.
ALDAGAIAK
JavaScripteko aldagaiek letrak, zenbakiak eta balore logikoak (true/false) gorde ditzazkete. Horrela definitzen dira:
var aldagai1 = 123;
var aldagai2 = 12.3:
var aldagai3 = "kaixo mundua";
var aldagai4 = true;OBJETUAK
Objetuak bere barnean propietate eta metodo sorta bat dituzten egiturak dira. Propietatea aldagaiak dira (objetuak izan daitezkeenak baita) eta metodoak funtziak. Javascriptek aurrez definitutako objetu asko ditu, erabiltzaileak beste hainbeste defini ditzazkelarik. Objetu baten propietatera akzeditzeko "
Objetua.Propietatea" sintaxia erabili behar da. Adibidez, "
auto" objetua badugu, "
kolore" eta "
matrikula" propietateak asignatu ditzakegu:
auto.kolore = "Gorria";
auto.matrikula = 2202;Metodo bat objetuari atxikituta doan funtzio bat da soilik, eta funtzio bat lan jakin bat egiten duen expresio multzo bat, deituak izaten direnak. Funtzio baten egitura berriz honakoa da:
function nereFuntzioa(string)
{
document.write("kaixo mundua");
}Objetu bat sortzeko bi pausu eman beharra daude, lehenik funtzio baten bidez objetuaren tipoa definitu eta gero objetu horren instantzia bat sortu "
new" hitz erreserbatuarekin. Adibidez, "
auto" tipoko objetu bat sortu nahi bada, lehenik funtzio generiko bat definitu beharko da:
function auto(kolore,matrikula,marka)
{
this.kolore = kolore;
this.matrikula = matrikula;
this.marka = marka;
}Ondoren, "
auto1" objetua sortu beharko da:
auto1 = new auto("gorria",2202,"opel");INSTRUKZIOAK
JavaScriptek, beste lenguaiek bezala, sintaxi ezberdineko hainbat hitz gako ditu erregistraturik. Adb.:
Aldagaien deklarazioa:
var aldagaiIzena = izena;Komentarioak:
//Kontuz hemen
/*Hau asko
kosta zitzaidan*/Funtzioak:
function izena(parametro1, parametro2,...)
{
JavaScript kodea
}Baldintzazko instrukzioak:
if(baldintza)
{
Baldintza betetzen bada exekutatu beharreko instrukzioak
}
else
{
Baldintza betetzen ez bada exekutatu beharreko instrukzioak
} switc(aldagaia)
{
case 1: instrukzioak
break;
case 2: instrukzioak
break;
default: instrukzioak
}Bukleak:
for(hasierako balioa; baldintza; aktualizazioa)
{
Bukle bakoitzean exekutatu beharrekoa
}
while(baldintza)
{
Bukle bakoitzean exekutatu beharrekoa
}JAVASCRIPT HTML KODEAN TXERTATZEN
Bi modu daude HTML dokumentu batean JavaScript script bat txertatzeko: SCRIPT markaren bidez, zeinak funtzioak definitzea ahalbidetzen du; edota gertaeren (
events) kudeaketa ahalbidetzen duten HTML marka batzuen atributuen bidez. Lehen metodoarekin, scripta SCRIPT marken artean idazten da, gehienetan HTML komentario bat bailitzan (
<!-- ... -->). Horrela SCRIPT marka interpretatzen ez duten nabigatzaileetan idatzi dugun JavaScript kodea ikustea eragozten dugu. Ikus ondorengo adibidea:
<HTML>
<HEAD>
<SCRIPT Language="JavaScript">
<!--
function mezua()
{
document.write("Kaixo mundua!");
}
-->
</SCRIPT> </HEAD>
<BODY onLoad="mezua()">
JavaScript proba
</BODY>
</HTML>HTML dokumentuaren buruan "
mezua()" izeneko JavaScript funtzio bat definitu da SCRIPT etiketen artean. Funtzio honi orria kargatzean deituko zaio, eta horretarako BODY etiketan "
onLoad" gertaera ipini dugu.
GERTAERAK KUDEATZEN
JavaScripten ezaugarri erakargarriena detektatutako gertaerak modu lokalean kudeatzeko aukera da. Gertaerak erabintzailearen ekintzen emaitza dira, adibidez, botoi bat sakatzea edo formulario bateko eremu bat aukeratzea. Gertaera hauen kudeaketa marka jakin batzuetan adierazten da eta bakoitzari atxikituta doakion ekintza espezifikatzen du. Honakoa du sintaxia:
<marka gertaera="JavaScript kodea">Adibide garbiago bat:
<INPUT TYPE="button" onClick="funtzioa();">Botoi bat adierazten duen marka honetan "
onClick" gertaera gertatzen denean (hau da, erabiltzaileak botoia zapaltzen duenean"), berari atxikituta doan funtzioari deituko dio. Kakotsen (
"") hartean JavaScript kodea zuzenean idaztea dagoen arren, gomendagarrien aurreragotik definitutako funtzioei deitzea da.
Hona hemen gertaeren eta berau atxikituta duten HTML marken zerrenda bat:
| Gertaera |
Erabiltzailearen ekintza
|
HTML marka
|
| onBlur |
Edizio eremu bat uztean
|
INPUT |
| onClick |
Formulario elementu batean klik egitean
|
FORM, A
|
| onChange |
Eremu bateko balio aldatzean
|
INPUT, SELECT
|
| onFocus |
Edizio eremu bat aktibatzean
|
INPUT |
| onLoad |
HTML dokumentua kargatzean
|
BODY |
| onMouseOver |
Xaguaren kurtsorea gainetik pasatzean
|
A, IMG
|
| onSelect |
Edizio eremua aukeratzean
|
INPUT |
| onSubmit |
Formularioa bidaltzean
|
FORM |
| onReset |
Formularioa garbitzean
|
FORM |
| onUnload |
HTML dokumentua uztean
|
BODY |
| onMouseOut |
Xaguaren kurtsorea gainetik kentzean
|
A, IMG
|
Posted by: galustiza.2007/02/08 15:40:54.605 GMT+1
Tags:
web
gidaliburu
euskara
javascript
programazio
lenguaia
informatika
gida
| Permalink
| Comments (1)
| References (0)
2007/01/05 11:51:14.074 GMT+1
Egilea: Gorka Alustiza
Web orri bat garatzen hari garenean, erabiltzaile gehienek era lokalean sortzen dituzte orri hauek, gerora zerbitzari batera (dohakoa edota ordaindu beharrekoa) igo baino lehen. Honek gure ordenagailuan zerbitzari bat eraiki behar dugula esan nahi du, gure orriek zerbitzariak exekutatu beharreko scriptak (PHP kodea, adibidez) funtziona dezaten. Artikulu honetan web horri bat garatzeko hiru oinarrizko elementuak, Apache, PHP eta MySQL, nola instalatu azaltzen saiatuko gara. Zehazki,
Apache 2.0.X, PHP 5.0.3 eta
MySQL 4.0.X bertsioak instalatuko ditugu.
PROGRAMAK JEITSI
Behar diren hiru programak hainbat lekutan aurki ditzazkegu sarean, baite bere orri ofizialetan ere. Hona hemen hiru link orri hauetara:
Apache
MySQL
PHPAPACHE INSTALATU
Egin behar dugun gauza bakarra jeitxi dugun artxiboa exekutatzea da, ongietorri lehio bat agertuko delarik. Sakatu Next> honako orria agertu arte:

Ondorengo orri honetan datu batzu idatzi beharko dira. "
Network Domain" eta "
Server Name"en gure ordenagailu lokalaren IP zenbakia (127.0.0.1) edo "
localhost", "
Administrator's Email Address" nahi dugun email helbidea (nahiz eta ez existitu) eta "
Run when started manually, only for me" aukeratu.
Hau eta gero azken orrira iritsiko gara. Sakatu Install eta kitto.
PHP 5 INSTALATU
ARTXIBOAK KOPIATU
Egin beharreko lehen lana zerbitzariaren artxiboak gordetzeko karpeta bat sortzea da, adibidez "
C:\Zerbitzaria\", ondoren bere barruan PHP izeneko beste bat sortuko dugularik "
C:\Zerbitzaria\PHP". Bere orri ofizialetik jeitsi dugun ZIP artxiboaren edukina karpeta honetara aterako dugu. Azkenik, PHP karpeta honetan aurkituko liratezkeen DLL artxibo guztiak kopiatu eta Windows karpetako
System (Windows 9x bada) edo
System32 (NT,2000,XP,2003) direktoriora kopiatu behar dira (EXT karpetako DLLak ez daude kopiatu beharrik).
PHP.INI ARTXIBOA KONFIGURATU
Hurrengo pausoa php.ini artxiboa konfiguratzea izango litzateke. "
C:\Zerbitzaria\PHP\php.ini-dist" artxiboari izena aldatzen diogu, "
php.ini" berrizendatuz eta "Notepad" herramintarekin irekitzen dugu.
Nahi izanez gero, "
register_globals = Off" lerro aurkitu eta "
register_globals = On"-en truke aldatu dezakegu. Direktiba hau aktibatuz aldagaiak globalak direla suposatuko da eta edozein moduz iritsi daitezkeela (
POST, GET, COOKIE, SERVER, etab...), baina segurtasun arazoak direla medio, ez da oso gomendagarria.
Ondoren PHPri luzapenak non gorde adieraziko diogu. Honetarako, bilatu "
php.ini" artxiboan "
extension_dir" ipintzen duen lerroa eta "
php_xxx.dll" artxiboak dauden karpeta ipintzen diogu (defektuz PHP barruko "
ext" karpeta dena). Kontuz "\" barra jartzearekin, "/" jarri behar bait da. Honela geratu behar luke:
; Directory in which the loadable extensions (modules) reside.
extension_dir = "C:/Zerbitzaria/PHP/ext/"Nahi ditugun luzapenak aktibatu ditzazkegu, horretarako "
Windows Extensions" esaldia bilatuz textuan. Gure kasuan
"php_mysql.dll" aktibatzea komeni zaigu MySQLren inguruko funtzioak erabili ahal izateko. Horretarako "
;extension=php_mysql.dll" lerroa aurkitu eta hasierako ";" kendu beharko zaio.
HTTP bidez artxiboak igo nahi baditugu, berauek tenporalki non gorde nahi diren ere adierazi behar zaio. Aurkitu "
upload_tmp_dir" esaldia eta ipini nahi dugun direktorioa. "
C:\Zerbitzaria\PHP"-n "
uploads" izeneko karpeta bat sor dezakegu helburu honetarako, horrela geratuko litzatekelarik:
; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
upload_tmp_dir = "C:/Zerbitzaria/PHP/uploads/"Sesioekin lan egiteko artxibo tenporalak gordetzeko direktorio bat ere jarri behar da. Lehen egin dugun bezala "
session.save_path" bilatu eta nahi dugun direktorioa ipintzen dugu, iada existitzen dena edo guk sortua:
session.save_path = "C:/Zerbitzaria/PHP/sessions/"Amaitzeko "
php.ini" artxiboa gorde aldaketa guztiekin eta "
C:\Windows" edo "
C:\WinNT"-ra kopiatu gure Windows bertsioaren arabera. Orain Apache konfiguratu beharko da PHP daukagula jakin dezan.
APACHEREN HTTPD.CONF ARTXIBOA KONFIGURATU
"Apache" direktorioko "
Conf" karpetan dagoen "
httpd.conf" artxiboa ireki behar dan lehenik "Wordpad"ekin eta "
Dynamic Shared Object (DSO) Support" bilatu. Hemen Apacherentzat dagoen PHP modulua kargatuko dugu, "
php5apache2.dll" helbidea emanez, honela geratu behar duelarik:
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule php5_module C:/Zerbitzaria/PHP/php5apache2.dll
Orriak gordetzeko berezko direktorioa "
C:\Archivos de programa\Apache Group\Apache\htdocs\" da, baina nahi izanez gero alda dezakegu. Honetarako bilatu "
DocumentRoot" esaldia hau bilatu arte:
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "C:/Archivos de programa/Apache Group/Apache/htdocs"Aldatu azken lerroa gure orriak gorde nahi ditugun direktoriora, adibidez:
"
C:/Zerbitzaria/WEB".
Ondoren bilatu "
DirectoryIndex" textua eta honakoa agertuko da:
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
# The index.html.var file (a type-map) is used to deliver content-
# negotiated documents. The MultiViews Option can be used for the
# same purpose, but it is much slower.
#
DirectoryIndex index.html index.html.varHemen index (sarrera) predeterminatuak definitzen dira. Nahi izanez gero gehitu index gehiago:
DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.phtml index.html.var
Honen azpian beste bi lerro txertatu beharko dira, Apache interpretatu behar dituen luzapenak adierazteko. Denera, horrela geratu beharko luke:
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
# The index.html.var file (a type-map) is used to deliver content-
# negotiated documents. The MultiViews Option can be used for the
# same purpose, but it is much slower.
#
DirectoryIndex index.html index.htm index.php index.php3 index.php4 index.phtml index.html.var
AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
AddType application/x-httpd-php-source .phpsAPACHE ZERBITZARIA PROBATZEN
Egin beharreko lehen gauza Apache hastea da oraindik ez badago. Honetarako, "
Inicio->Todos los programas", Apache zerbitzaria aukeratu, "
Control Apache Server" eta "
Monitor Apache Server". Hemen zerbitzaria hasi edo itzali dezakegu. Ez bazaigu automatikoki hasi, "
Start"i ematen diogu.
Probatzeko "
info.php" orri bat sor dezakegu "
C:/Zerbitzaria/WEB" direktorioan, bere edukia honako textua izango delarik:
<?
phpinfo();
?>Gure nabigatzailean "
http://127.0.0.1/info.php" edo "
http://localhost/info.php" jarriz gero, PHPren informazioa duen orri bat agertu behar du. Ez bada agertzen, zerbait gaizki egin dugu.

Ikus daitekeen bezela, gure zerbitzariko orrietara akzeditzeko ("
C:/Zerbitzaria/WEB" direktorioan egongo direnak) "
http://localhost/izena" jarri behar da, "
www" gabe. Gure direktorioan azpi-karpeta bat egongez gero, honako jarri beharko litzateke: "
http://localhost/karpeta/izena". Dena ondo egin ezgero, gertu dugu gure zerbitzaria web orriak eraikitzeko, Internetera konektatuta egon beharrik gabe.
MYSQL INSTALATU
Jeitsi dugun ZIP artxiboa deskonprimitu beharko dugu lehenik, "
setup" exekutatuz sortuta edukiko dugun "
C:/Zerbitzaria/MySQL" karpetan instalatuko dugularik. Ondoren "
C:/Zerbitzaria/MySQL/bin"-n egongo den "
winmysqladmin.exe" exekutatuko dugu eta lehen aldia denez erabiltzaile izena eta pasahitz bat eskatuko digu. Sartu gura dena (defektuz, erabiltzailea "
root" eta pasahitzik ez). Hau egin ondoren semaforo baten ikonoa agertuko zaigu pantailaren behe-eskuinaldean, gauza ondo joan bada berdea izan behar lukeena.
Posted by: galustiza.2007/01/05 11:51:14.074 GMT+1
Tags:
informatika
gida
mysql
apache
zerbitzari
php
instalatu
| Permalink
| Comments (1)
| References (0)
2006/12/18 20:32:07.646 GMT+1
Egilea: Gorka Alustiza
DATU BASEAK
Datu base bat textu formatuan informazioaren biltegiratze masiboa
helburu duen soporte digital bat da. Datu base bakoitza, informazioa
era ordenatuan erakusteko, tabletan banatuta dago. Tabla bakoitza
zutabetan banatuta dago, informazioaren kanpo ezberdinak izango
litzatezkeenak, eta azkenik, datu erregistro bakoitzeko lerro bat
egongo litzateke. Hobeto ulertzeko, tabla bat "
lagunak" izango litzateke, zutabeak "
izena","
abizena","adina" eta lerroak ["
Iker","Murua","22"], [
"Ainara","Zabala","24"],...
Datu baseak sortu, bertara akzeditu eta aldatzeko programa kudeatzaileak erabiltzen dira. Hona hemen adibide batzu:
MySQL:
GPL baimena duen datu base bat da (askea beraz), denetan erabiliena.
Berez kode bidez sortu eta kudeatu behar den arren, erabiltzaileek
phpMyAdmin,
MySQL Control Center edo beste programaren bat erabil dezakete informazioa kudeatzeko.
Access: Microsoftek garatua,
access programarekin sortu behar da, zeinak gorago azaldu den egitardun .
mdb artxibo bat sortuko du. Ingurune grafikoa
excelen oso antzekoa da.
Oracle:
Oracle Corporationek sortua, dagoen sistemarik osoenetarikotaz jotzen
da, bere estabilitate, transakzio soporte eta plataformanitza delako.
Bere alde negatiboa oso garestia dela da.
SQL LENGUAIA
SQL edo
structured consulting language (kontsulta lenguaia
estrukturatua) datu base erlazionaletara sartzeko lenguaia deklaratibo
bat da, berauekin hainbat operazio egitea ahalbidetzen duena. Aljebra
eta kalkulu erlazionalaren ezaugarriak batzen ditu datu base batetik
interesezko datuak atera ahal izateko modu errazean. Kontsulta soiletik
haratago, datu baseak eta bistak definitzeko eta datuen manipulatzeko
lenguaia ere bada.
DATUAK ATERATZEKO
Datu base erlazionaletan ematen den operazio ohikona datuak ateratzekoa da. Datuak lortzeko komandoetara mugatua dagoenean, SQLk lenguaia deklaratibo gisa jokatzen du.
SELECT
Datu baseko tabla batetik edo gehiagotik erregistro lerro bat edo gehiago ateratzeko erabiltzen da. Komandorik erabiliena, erabiltzaileak atera nahi duen informazioaren ezaugarriak aukera ditzazke. Hauek dira SELECT komandoari atxikituta doazen hitz gako nagusienak:
FROM: datu baseko zein tabletatik atera nahi den informazioa adierazteko balio du.
WHERE: atera nahi diren erregistroen ezaugarriak identifikatzen ditu.
JOIN: baliokide konbinazio bat sortzen du. Hauek bi tabletako erregistroak konbinatzen dituzte, komunean duten zutabe baten balioaren arabera.
GROUP BY: adierazitako zutabeetan balio bera duten erregistroak konbinatzen ditu erregistro bakar batean.
HAVING: WHERE-n antzekoa,
GROUP BY instrukzioarekin konbinatutako erregistroen ezaugarriak definitzen ditu.
ORDER BY: lortutako erregistroak ordenatzen ditu adierazitako zutabearen balioaren arabera.
Ikus ondorengo adibidea:
SELECT * FROM lagunak
WHERE adina>20
ORDER BY abizena
Adibide honetan "
lagunak" tablatik ateratzen dira erregistro lerroak. "*" sinboloarekin erregistroen zutabe guztiak atera nahi direla adierazten da (zutabe jakin batzu soilik nahi izango bagenituzke, nahikoa litzateke hauek jartzea sinboloaren ordez: "
izena","
abizena",...). "
Adina" izeneko zutabea (zenbakizkoa izango dena) 20 baino handiagoa dutenak aterako dira soilik, baldintza hau betetzen ez duten erregistroak baztertuko direlarik. Lortutako erregistroak "
abizena" zutabearen arabera ordenatuko dira alfabetikoki. Ondorengo adibidea konplexuagoa da:
SELECT lagunak.izena,lagunak.bizilekua FROM lagunak
JOIN herriak
ON lagunak.bizilekua=herriak.izena
Baliokide konbinazio bat egiten du. "
Lagunak" tablatik, "
herriak" tablan agertzen diren herrietan bizi diren lagunen izena eta bizilekua ateratzen du. Lagunen bat "
herriak" tablan agertzen ez den herri batean bizi bada, ez da emaitzan agertuko, eta lagunik bizi ez den herririk ere ez. Hau izango litzateke emaiza:
| Nerea |
Alegia
|
| Imanol |
Beasain |
| Itxaso |
Asteasu
|
DATUAK MANEIATZEKO
Datuak Manipulatzeko Lenguaiaren (
DML, "Data Manipulation Language") elementuak erabiltzen dira, datuak sartu, eguneratu edo ezabatzeko.
INSERT
Existitzen den tabla bati erregistro bat edo gehiago gehitzeko erabiltzen da. Adb.:
INSERT INTO lagunak(izena,abizena,adina) VALUES ('garikoitz",'ayestaran',25)UPDATE
Existitzen den lerro baten balioak aldatzeko. Adb.:
UPDATE lagunak SET abizena='iraola' where izena='maitane'DELETE
Lerroren bat ezabatzeko. Adb.:
DELETE FROM lagunak WHERE adina<20TRANSAKZIO KONTROLA
Datu basean operazio bat egiten den bakoitzean, hau ez da benetazko tablan egiten, bere kopia batean baizik. Aldaketa hauek datu basean modu iraunkorrean gordetzeko, ondorengo komandoak erabiltzen dira. Zorrotzki jokatuz,
BEGIN WORK komandoarekin ireki behar dira.
COMMIT
Egindako aldaketa guztiak "igotzen" ditu, iraunkorrak eginez.
ROLLBACK
Azken
COMMITetik egindako aldaketa guztiak desegiten ditu, gordetako azken bertsiora itzuliz.
DATUEN DEFINIZIOA
Bigarren hitz gako taldea Datuen Definizio Lenguaia (
DDL, "Data Definition Language") da. Honen bidez erabiltzaileak tabla berriak definitu ditzazke. Hauek dira bere komando nagusiak:
CREATE
Objetu bat sortzen du (tabla bat adibidez) datu basean.
DROP
Objetu bat ezabatzen du datu basetik.
TRUNCATE
Tablako datu guztiak ezabatzen ditu.
ALTER
Objetuak aldatzea ahalbidetzen du, adibidez, tabla bati zutabe bat gehituz.
Posted by: galustiza.2006/12/18 20:32:07.646 GMT+1
Tags:
datu
programazio
lenguaia
informatika
base
sql
| Permalink
| Comments (0)
| References (0)
2006/12/13 18:46:29.620 GMT+1
Egilea: Gorka Alustiza
NAGUSIAK
| <HTML>...</HTML> |
HTML fitxaren hasiera eta amaiera
|
| <HEAD>...</HEAD> |
HTML dokumentu baten burua
|
| <BODY>...</BODY> |
HTML dokumentu baten gorputza
|
| <TITLE>...</TITLE> |
Browserrak ikusaraziko duen titulua
|
TEXTUAREN ESTILOA
| <B>...</B> |
Lodia |
| <I>...</I> |
Etzana
|
<U>...</U>
|
Azpimarratua
|
<S>...</S>
|
Marratua
|
<BIG>...</BIG>
|
Karaktereen tamaina unitate batean gehitua
|
<FONT color="#XXXXXX">...</FONT>
|
Textuaren kolorea
|
<FONT size="X">...</FONT>
|
Textuaren tamaina
|
<FONT face="X">...</FONT>
|
Textuaren letra mota
|
<PRE>...</PRE>
|
Textu preformateatua
|
<SMALL>...</SMALL>
|
Karaktereen tamaina unitate batean gutxitua
|
<SUB>...</SUB>
|
Textua azpi-indizean
|
<SUP>...</SUP>
|
Textua goi-indizean
|
PARRAFOA ETA LERROKATZEAK
| <!--...-> |
Komentarioak |
<BR>
|
Lerro jauzia
|
<CENTER>...</CENTER>
|
Etiketen arteko elementua zentratu
|
<DIV align=center>...</DIV>
|
Etiketen arteko elementua zentratu
|
<DIV align=left>...</DIV>
|
Etiketen arteko elementua ezkerrean jarri
|
<DIV align=right>...</DIV>
|
Etiketen arteko elementua eskuinean jarri
|
<P>
|
Parrafo berria
|
ZERRENDAK
| <UL><LI>...</LI></UL> |
Zenbakitu gabeko zerrenda
|
<OL><LI>...</LI></OL>
|
Zenbakitutako zerrenda
|
<DL><DT>...</DT></DL>
|
Definizio zerrenda (indentatu gabea)
|
<DL><DD>...</DD></DL>
|
Definizio zerrenda (indentatua)
|
ESTEKAK
<A href="http://...">...</A>
|
Web orri batera esteka
|
|
<A href="mailto:...">...</A> |
Email helbida batera esteka
|
|
<A href="orria.htm">...</A> |
"orria.htm" direktorio bereko orri batera esteka
|
|
<A href="sekzio">...</A> |
Sekzio batera esteka
|
|
<A href="#sekzio.">...</A> |
Orri bereko sekzio batera esteka
|
|
<A href="orria#sekzio.">...</A> |
"orria.htm" orriko sekzio batera esteka
|
IRUDIAK
<IMG src="irudi.gif">
|
"Gif" irudi baten txertatzea
|
<IMG ... width="x" height="y">
|
Irudiaren zabalera eta altueraren definizioa pixeletan
|
<IMG ... alt="Irudi bat">
|
Irudia agertzen ez denerako textu alternatiboa
|
TAULAK
| <TABLE>...</TABLE> |
Taula baten definizioa
|
<TABLE border=x>...</TABLE>
|
Taularen ertzaren zabalera
|
<TABLE cellpaddin=x>...</TABLE>
|
Textuaren eta ertzaren arteko distantzia
|
<TABLE cellspacing=x>...</TABLE>
|
Gelaxken harteko marraren zabalera
|
<TR>...</TR>
|
Taulako lerroa
|
<TD>...</TD>
|
Taulako gelaxka
|
<TD bgcolor="#XXXXXX">
|
Gelaxka baten kolorea
|
<TD colspan=x>
|
Horizontalki fusionatu beharreko gelaxka kopurua
|
<TD rowspan=x>
|
Bertikalki fusionatu beharreko gelaxka kopurua |
MARKOAK (FRAME)
| <FRAMESET>...</FRAMESET> |
Frame egitura baten definizioa
|
<FRAMESET rows="x%, y%,...">
|
Lehiaren banaketa horizontala
|
| <FRAMESET cols="x%, y%,..."> |
Lehiaren banaketa bertikala |
<FRAME src="orria.htm" name="izena">
|
Frame lehio batean aurkeztutako orria
|
<NOFRAMES>...</NOFRAMES>
|
Frameak onartzen ez dituzten browserrentzat edukia
|
TARGET HELBURUAK
target = "lehioa"
|
Hiperlotura adierazitako estekan kargatzen da
|
|
target = "_blank" |
Lehio berri bat irekitzen du
|
|
target = "_self" |
Azpilehio aktiboan kargatzen du hiperlotura
|
|
target = "_parent" |
Aktualaren aurretik definitutako FRAMESETean kargatzen da
|
|
target = "_top" |
Azpilehio guztiak ezabatu eta hiperlotura lehio osoan erakusten da
|
FORMULARIO ELEMENTUAK
| <TEXTAREA>...</TEXTAREA> |
Lerro anitzeko textu gelatxoa
|
| <SELECT><OPTION>...</OPTION></SELECT> |
Hainbat aukeren zerrenda zabalgarria
|
<INPUT type="text">
|
Lerro bakarreko textu gelatxoa
|
| <INPUT type="password"> |
"text" bezala, karaktereak "*"-gatik ordezkatuz
|
| <INPUT type="checkbox"> |
"on"-"off" estatuak dituen laukitxo bat
|
| <INPUT type="radio"> |
Aldi berean laukitxo bakar bat aukeratzen uzten duen taldea
|
| <INPUT type="submit"> |
Formularioa bidaltzeko botoia
|
| <INPUT type="reset"> |
Formularioa garbitzeko botoia
|
| <INPUT type="file"> |
Fitxategi bat igotzeko menua
|
| <INPUT type="hidden"> |
Informazio ezkutua
|
| <INPUT type="image"> |
"Submit" funtzioa duen irudia
|
Posted by: galustiza.2006/12/13 18:46:29.620 GMT+1
Tags:
web
programazio
zerrenda
lenguaia
informatika
html
| Permalink
| Comments (3)
| References (0)
2006/12/13 16:17:10.282 GMT+1
Egilea: Gorka Alustiza
CSS edo
“Cascading Style Sheets” (Estilo Orriak Turrustan) HTMLko estrukturaren
aurkezpena banatzeko garatutako teknologia bat da, hau da, web dokumentu bat
exploratzailean ikustaraztean edukiko duen itxura definitzen du. W3Ck
garatutakoa da eta gero eta garrantzia gehiago du diseinuaren munduan, bere
erabilerraztasun eta emaitza honengatik.
HTML elementuei
erregelak aplikatuz funtzionatzen du, berauen kolore, hondo, borde, letra mota,
etab… bezalako propietateak kontrolatuz. Honela, web orriaren zati grafikoa
HTML egituratik erabat at geratzen da honek dauzkan onurekin: gure kodigoa
antolatu dezakegu, aldaketak errazten ditu, lan fluxua optimizatzen du, orriek
gutxiago okupatzen dute…
SINTAXIA
Hona hemen
aipatutako erregelen adibide bat:
P { text-align: right; }
Erregela honek
HTML kodeko <P></P> etiketen hartean dagoen textua eskuinean
alineatuko du. Orain azter dezagun etiketaren egitura. Bi zatitan bana daiteke:
batetik aukeratzailea (selector) eta bestetik deklarazioa (declaration),
giltzen hartean ( {…}).
Deklarazio bat
propietate bat eta bere balioa da. Lehenik propietatearen izena idazten da
(text-align), ondoren bi puntu eta azkenik propietate honek izatea nahi dugun
balioa (right). Etiketa berean hainbat deklarazio jartzeko, beraien hartean puntu-koma
“;”-ren bidez banatu behar dira. Aukeratzaile bat berriz (P) deklarazioa
aplikatu nahi diogun HTMLko elementuaren izena izan ohi da. Beste aukera bat,
aukeratzailea etiketaren izena izan beharrean “klasearena” edota
“identifikatzailearena” izatea da. Ikus adibide konplexuago hau:
TABLE { font-size:15;
font-family:sans-serif; }
TD { font-size:20;}
TD.burua {font-size:25;
color:#0000ff;}}
#textua { font-size:15;
background-color: #ff0000 }
.izenburua { font-size:20;
font-weight:bold; color:#44aa44;}
Ikus daitekenez,
hiru erregela definitzen ditugu. Lehenak <TABLE></TABLE> etiketen
hartean dagoen textuaren tamaina eta letra mota definitzen du eta bigarrenak
letra tamaina propio bat definitzen du <TD></TD> etiketentzat. Hirugarrenak <TD CLASS=”burua”></TD>
etiketa definitzen du, <TD></TD> etiketaren “klase” bat.
Laugarrenak “textua” identifikatzailea duen etiketari egiten dio so eta azkenak
“izenburua” klaseko elementu orori. Ondorengo atalean ikusiko da hau hobeto:
CSS ETA HTML
CSS orriak gure
HTML kodean aplikatzeko hainbat era daude. Lehena kodea textu artxibo batean
gordetzea izango litzateke “.css” izenarekin, eta ondoren gure orrira zuzendu
HTML kodean honakoa idatziz:
<LINK HREF=”estiloa.css”
REL=”stylesheet” TYPE=”text/css”>
Beste aukera bat
gure HTML kodean zuzenean txertatzea izango litzateke ondorengo moduan:
<HTML>
<HEAD>
<STYLE
TYPE=”text/css”>
P {
font-size:14}
</STYLE>
</HEAD>
<BODY>
…
Orain ikus
dezagun CSS eta HTML adibide osoago bat, goran ikusi dugun CSS kodea erabiliz:
<HTML>
<HEAD>
<STYLE
TYPE=”text/css”>
TABLE {
font-size:15; font-family:sans-serif; }
TD {
font-size:20;}
TD.burua
{font-size:25; color:#0000ff;}
#textua {
font-size:15; background-color: #ff0000; }
.izenburua {
font-size:20; font-weight:bold; color:#44aa44;}
</STYLE>
</HEAD>
<BODY>
<DIV CLASS=” izenburua”>CSS
proba DIV >
<DIV
ID=”textua”>Kaixo mundua!</ DIV >
<TABLE
BORDER>
<TR>
<TD
CLASS=”burua”>ZERRENDA</TD>
</TR>
<TR>
<TD>1.
elementua</TD>
</TR>
<TR>
<TD>2.
elementua</TD>
</TR>
</TABLE>
</BODY>
</HTML>
PROPIETATEEN ZERRENDA
CSSk kontrolatutako bost propietate kategoria daude. Ondoren berauek zerrendatuko dira:
ITURRIEN PROPIETATEAK
| Propietatea |
Deskribapena |
Balio posibleak
|
| font-family |
Letra mota
|
tipoen zerrenda
|
| font-size |
Letra tamainua
|
xx-small, x-small, small, medium, large ,x-large, xx-large |
| font-weight |
Letra lodiera
|
normal, bold, bolder, lighter edo 100tik 900ra
|
| font-style |
Letraren estiloa (etzana)
|
normal, italic, italic small-caps, oblique, oblique small-caps
|
HONDO ETA KOLOREAREN PROPIETATEAK
| Propietatea |
Deskribapena |
Balio posibleak |
color
|
textuaren kolorea
|
Kolore bat
|
| background |
Hondoko kolore edo grafikoa
|
Grafikoaren URLa edota kolore bat
|
TEXTUAREN PROPIETATEAK
| Propietatea |
Deskribapena |
Balio posibleak |
| line-height |
Lerroen arteko distantzia
|
Zenbakia ala portzentaia
|
| text-decoration |
Textuan efektuak
|
none, underline, overline, line-through, blink |
| vertical-align |
Textuaren posizio bertikala
|
baseline, sub, super, top, text-top, middle, bottom, text-bottom edo portzentaia
|
| text-transform |
Letra larri edo xehe bihurtu
|
capitalize, uppercase, lowecase, none |
| text-align |
Textuaren alineazioa
|
left, right, center, justify
|
| text-indent |
Textuaren lehen izkiaren tabulazioa
|
Zenbakia edo portzentaia
|
KOADROAREN PROPIETATEAK
| Propietatea |
Deskribapena |
Balio posibleak |
| margin-top, margin-right, margin-bottom, margin-left |
Bloke baten eta beste elementuen harteko distantzia
|
Zenbakia edo portzentaia |
padding-top, padding-right, padding-bottom, padding-left
|
Bordearen eta blokearen edukiaren harteko distantzia
|
Zenbakia edo portzentaia |
border-top-width, border-right-width, border-bottom-width, border-left-width
|
Bloke baten bordearen zabalera
|
Zenbakia |
| border-style |
Borde baten estiloa
|
none, solid, 3D
|
| border-color |
Borde baten kolorea
|
Kolore bat
|
width, height
|
Bloke baten tamaina
|
Zenbakia edo portzentaia |
| float |
Bloke baten alineazioa
|
left, right, none |
| clear |
Bere ezkerrean edo eskubian beste elementu bat jarri ahal izateko baimena
|
left, right, both, none |
Posted by: galustiza.2006/12/13 16:17:10.282 GMT+1
Tags:
web
diseinu
programazio
lenguaia
informatika
gida
css
| Permalink
| Comments (0)
| References (0)
2006/12/12 12:10:38.177 GMT+1
Egilea: Gorka Alustiza
HTML HyperText Markup Lenguageren siglak dira
(Marketan oinarritutako Hipertexto lenguaia), web orri baten zati ezberdinak
definitzeko erabiltzen den marka lenguai bat, dokumentuaren atalak
klasifikatzeko nabigatzaileak orria ondo ikusarazi dezan.
ETIKETAK
Etiketa bat marka unitate bat da, HTMLn definituta
dauden sinbolo multzo bat esanahi jakin bat dutenak. Sintaxia honakoa da:
‘txikiago’ sinboloa (<) + hitz gakoa + ‘handiago’ sinboloa (>). Idatzi
ondorengo kodigoa ‘notepad’-arekin eta gorde ‘kaixo.htm’ izenarekin zure lehen
web orria sortzeko:
<HTML>
<HEAD>
<TITLE>
Adibidea
</TITLE>
</HEAD>
<BODY>
Kaixo
mundua!
</BODY>
</HTML>
Ikusten denez, <HTML> etiketa jartzean HTML
dokumentu bat idazten hari garela adierazten dugu, eta </HTML> etiketarekin
berau amaitu dela. Behin dokumentuaren barruan, bi atal nabarmendu
ditzakezkegu, burua (<HEAD>…</HEAD>) eta dokumentuaren zati
nagusia, gorputza (<BODY>…</BODY>). Buruan dokumentuaren izenburua
definitu dezakegu <TITLE> eta </TITLE> etiketen hartean.
Dokumentuaren gorputzean web orria eraikiko dugu, bere diseinu eta atalekin.
HTMLk etiketa asko ditu definiturik, bakoitzak
eginbehar jakin bat duelarik. Textu baten estiloa defini dezake (negrita <B>…</B>,
kursiba <I>…</I>), elementuak dokumentuak kokatu (parrafoa definitu
<P>…</P>, zentratu <CENTER>…</CENTER>), irudi bat sartu
(<IMG SRC=’url’>) edo beste orri batetarako linka idatzi (<A HREF=’url’>…</A>)
. Ikusi etiketen zerrenda blog honetan bertan.
GORPUTZA
<BODY> etiketaren atributuei esker dokumentu
baten itxura aldatu dezakegu. Sei atributu ditu denera: BGCOLOR, BACKGROUND, TEXT,
LINK, VLINK eta ALINK.
Koloreak
HTMLn kolorea definitzeko bi era daude, bata
kolorearen izenarekin zuzenean (16 izen daude definiturik)eta beste RGP
kodearekin, hau da, Red Green Blue (Gorria, Berdea, Urdina). Azken honek 6
digitu ditu beti: lehen biek gorri kantitatea adierazten dute, hurrengo biek
berdearena eta azkenen urdinarena. Hiru kolore primario hauek nahastuta,
edozein kolore lor daiteke. # sinboloa izan behar dute aurretik.
| Kolorea |
RGB
|
| Zuria |
#FFFFFF |
Gorria
|
#FF0000 |
| Berdea |
#00FF00 |
Horia
|
#FFFF00 |
| Grisa |
#808080 |
Hondoko kolorea BGCOLOR atributuarekin doitzeko:
<BODY
BGCOLOR=”RED”>
<BODY
BGCOLOR=”#008000”>
Koloreaz gain, irudi bat ere jarri daiteke hondo
gisa,BACKGROUND atributuarekin:
<BODY
BACKGROUND=”irudi.gif”>
Orriko textuaren kolorea doitzeko:
<BODY
TEXT=”FUCHSIA”>
<BODY
TEXT=”#009090”>
Orriko linken kolorea aldatzeko:
<BODY
LINK=”TEAL”>
<BODY
LINK=”#FF00FF”>
Bisitatuako linken kolorea doitzeko:
<BODY
VLINK=”MAROON”>
<BODY
VLINK=”#800000”>
Link aktiboen (kursorea gainean jartzean) kolorea
doitzeko:
<BODY
ALINK=”GRAY”>
<BODY
ALINK=”#080800”>
FONT elementua
FONT etiketak (<FONT>…</FONT>) bere
giltzen hartean dagoen textuaren tamaina, kolorea eta itxura aldatzea
ahalbidetzen du, horretarako COLOR (kolorea), SIZE (tamaina) eta FACE (textu
mota, Arial, Palatino, etab…) atributuak dituelarik.
<FONT
COLOR=”RED” SIZE=”2” FACE=”Arial”>Kaixo!</FONT>
TABLAK
Web orri batean informazioa erakusteko modurik
txukunena eta erabiliena, tablen bidez da (<TABLE>…</TABLE>). Tabla
hauetan lerro horizontalak definitzen dira <TR>…</TR> etiketekin,
eta hauen barnean zelda bakoitza sortzeko <TD>…</TD> etiketa. Lerro
bateko zelda kopuruak, tablak edukiko dituen zutabe kopurua definitzen du. Hona
hemen oinarrizko adibide bat:
<TABLE>
<TR>
<TD>Izena: </TD>
<TD>Patxi</TD>
</TR>
<TR>
<TD>Abizena: </TD>
<TD>Telleria</TD>
</TR>
</TABLE>
<TABLE> etiketak hainbat atributo ditu,
tablaren formatuan ondorengo aukerak ematen dituena:
Tablaren posizio horizontala dokumentuan ALIGN
atributuarekin defini daiteke.
<TABLE
ALIGN=”LEFT”>
<TABLE
ALIGN=”CENTER”>
<TABLE
ALIGN=”RIGHT”>
Tablaren dimentsioak WIDTH (zabalera) eta HEIGHT
(altuera) propietateek espezifika daitezke. Bi era daude hau egiteko, lehio osoaren portzentai gisa adieraziz edota
dimentsioa pixel kopurutan idatziz:
<TABLE
WIDTH=”100”>
<TABLE
HEIGHT=”50%”>
Tablaren eta zelden bordeak (defektuz agertuko ez
direnak) ikusarazteko bi era ditugu, “BORDER=borde_kopurua” idatziz zenbat borde nahi ditugu adieraziz
edota BORDER soilik idatziz (hau BORDER=1-en baliokidea da).
<TABLE
BORDER>
<TABLE
BORDER=2>
Zelden harteko espazioa (pixeletan) defini dezakegu
CELLSPACING atributuarekin (defektuz 2):
<TABLE
CELLSPACING=”0”>
Zeldaren bordearen eta bere barneko elementuaren
(textua, irudia…) harteko distantzia definitzeko, CELLPADDING erabil daiteke:
<TABLE
CELLPADDING=”0”>
Bere aldetik, <TR> eta <TD> etiketek
ere bere atributuak dituzte, besteak beste BGCOLOR (hondoko kolorea), ALIGN
(tableko datuen alineazio horizontala), VALIGN (tableko datuen alineazio
bertikala, TOP, MIDDLE, BOTTOM eta BASELINE balioak har ditzazkelarik). Nabarmendu
behar dira COLSPAN eta ROWSPAN atributuak. Lehena zelda alboko zutabeko
zeldarekin “fusionatzeko” erabiltzen da, batu nahi diren zelden kopurua
adierazita. Bigarrenak zenbat lerro fusionatu behar diren adierazten du.
<TD
COLSPAN=2>
<TD
ROWSPAN=2>
MARKOAK
Markoek (frames) nabigatzailearen lehio berean
hainbat HTML dokumentu aurkeztea ahalbidetzen dute, lehio independienteak
bailira. Ikusi ondorengo adibidea:
<!DOCTYPE
HTML PUBLIC “-/W3C/DTD HTML 4.0 Frameset//EN”>
<HTML
LANG=”EN”>
<HEAD>
</HEAD>
<FRAMESET
COLS=”50%,50%”>
<FRAME
SRC=”lehen_orria.htm”>
<FRAME
SRC=”bigarren_orria.htm”>
</FRAMESET>
</HTML>
Markoak erabiltzen ditugunean, DOCTYPE deklarazio
bat erabili behar dugu, adibidean ikus daitekeen bezala. Markoen deklarazioak berriz, <FRAMESET>
etiketen hartean eman behar dira, zeinak ROWS eta COLS atributuak ditu, markoen
posizioa definitzen dutenak. <FRAME> etiketak, SRC atributu bat du, marko
horretan ikusarazi nahi dugun dokumentura apuntatzen egongo delarik.
Marko bakoitzari izen bat jarri daiteke,
<FRAME> etiketaren NAME atributuarekin; horrela marko honen edukia
dinamikoki aldatu ahal izango da bere izenari erreferentzia eginda TARGET
atributuari esker, honako adibidean bezala:
<A
HREF=”beste_orri.htm” TARGET=”ezkerra”>Orriz aldatu</A>
Link honetan klik egitean, “ezkerra” izeneko
markoan “beste_orri.htm” orria kargatuko da momentuan zegoenaren ordez.
Barne markoak
Markoak erabiltzeko beste aukera bat barne markoak
(I-Frames) erabiltzea da. Hauek ez daude frameset batean definitu beharrik,
HTML orrian sartzen dira zuzenean.
<IFRAME
WIDTH=”200” HEIGHT=”200” SRC=”orria.htm”>
FORMULARIOAK
HTMLk duen erabilgarritasunik nabarmenena
formularioen txertatzea da. Erabiltzailearik zerbitzarira informazioa
bidaltzera ahalbidetzen dute eta <FORM></FORM> etiketen hartean
definitzen dira. HirU atributu ditu etiketa honek: ACTION, informazioa jaso
behar duenaren helbidea; METHOD, informazioa ACTION atributuko URLari bidali
behar zaila adierazten duena (normalean “post”); eta ENCTYPE, informazioa bidaltzeko
era definitzen duena (normalean ez da definitzen, artxibo oso bat bidali ez
bada nahi behintzat).
<FORM ACTION=”postontzia.htm”
METHOD=”post>
….
</FORM>
erabiltzaileari bidali beharreko informazioa
sartzea ahalbidetzeko hainbat formulario elementu daude, erabilienak honakoak
direlarik:
Textarea
<TEXTAREA></TEXTAREA> etiketen hartean,
hainbat lerrotako textua sartzeko balio du. ROWS eta COLS atributuekin tamaina
definitzen da. Adb.:
<TEXTAREA NAME=”textua”
ROWS=5 COLS=30></TEXTAREA>
Select
<SELECT></SELECT> etiten hartean,
aukeratzeko hainbat elementu ikustarazten ditu, menu desplegable edo “konbo”
batean. Aukeratzeko elementuak definitzeko, etiketa nagusien hartean <OPTION></OPTION>
etiketak jarri behar dira.
<SELECT
NAME=”aukera>
<OPTION
VALUE=”a”>a</OPTION>
<OPTION
VALUE=”b”>b</OPTION>
<OPTION
VALUE=”c”>c</OPTION>
</SELECT>
INPUT
Hainbat motako kontrolak sortzeko balio du,
<INPUT TYPE=”mota”> etiketarekin. Motak honakoak izan daitezke: TEXT,
lerro bakarreko textu laukitxo bat sortzeko; RADIO, aldi berean aukera bakarra
uzten duen botoi taldea; HIDDEN, ikustezina den baina balio bat duen elementua;
FILE, artxibo bat aukeratzeko menua; SUBMIT, formularioa bidaltzeko, etab…
<INPUT
TYPE=”text” NAME=”izena” VALUE =”Gorka”>
<INPUT
TYPE=”hidden” NAME=”nan” VALUE =”123”>
<INPUT
TYPE=”submit” VALUE=”bidali”>
Ikusten denez, elementuen izena NAME atributuaren
bidez definitzen da. Izenari esker, formularioko informazioa jasotzen duen
orriak elementu bakoitzaren datuak jaso ahal ditu ASP, PHP edota beste
zerbitzari aldeko programazio lenguaia baten bidez. Arlo honi buruz informazio
gehiago blog honetako PHPren oinarrizko gidan eta ASPren objetuenean.
Posted by: galustiza.2006/12/12 12:10:38.177 GMT+1
Tags:
web
programazio
lenguaia
informatika
html
gida
| Permalink
| Comments (0)
| References (0)
2006/12/11 15:19:43.268 GMT+1
Egilea: Gorka Alustiza
ASP interneteko aplikazioak sortzeko teknologia bat
denez, hainbat prozesu (erabiltzaileren aldagaien kudeaketa, formularioak
bidali eta jasotzea…) betetzeko metodologia errez eta eraginkor bat behar du,
eta lan honetarako lenguaiari gehitutako modulu batzuei deitzen da, objetuak
delakoak.
Objetu hauek bere propietateak dituzte eta
eginkizun bat betetzeko exekuta ditzakeen metodo edo funtzioak.
REQUEST
Objetu honen bidez, nabigatzaileak zerbitzariari
bidaltzen dion informazioa ikus daiteke, formularioen bidez, URLtik edota
cookien bidez. Honakoak dira bere propietateak:
Form
HTMLko formulario batek (<form>) “Post” metodoarekin (<form
method=post>9 bidalitako elementu guztiak ditu bere baitan. Elementu
bakoitzera akzeditzeko:
<%
= request.form( “elementuaren_izena” ) %>
Ikusi honako adibidea:
---------------------Formularioa.htm--------------------
<html>
<head></head>
<body>
<form
action=”formularioa_prozesatu.asp” method=”post”>
Izena:
<input type=”Text” name=”izena”><br>
Abizena:
<input type=”Text” name=”abizena”><br>
<input
type=”submit” value=”Bidali”>
</form>
</body>
</html>
---------------formularioa_prozesatu.asp--------------------
<html>
<head></head>
<body>
<%
= “izena: “ &
request.form(“izena”)
=
“abizena: “ & request.form(“abizena”)
%>
</body>
</html>
Cookies
Erabiltzaileak aurretik sortutako cookie bat
berreskuratzeko balio du. Hoanko adibidean, lehenako sortu dugun “eguna”
cookiea eskuratzen da.
<%
= request.cookies(“eguna”) %>
QueryString
ASP orri batera parametro gisa bidalitako balio
guztiak ditu. ASP orri bati paramtroak pasatzeko era asko daude: bat
formularioen bidez ‘GET’ metodo erabilitz izango litzateke; beste bat orriaren
orriaren URLan (nabigatzailean helbidearen barran) katiaturiz bidaltzea,
horrela:
www.adibide.asp?izena=irati&abizena=esnaola
‘izena’ aldagaia eta bere balioa (‘irati’),
orriaren helbidearen ondoren idatzi da ‘?’ sinboloarekin katiatuz. Aldagai
gehiago bidali nahi badira, ‘&’ sinboloarekin katiatu beharko dira. Ikusi
ondorengo adibidea:
---------------------Bidali.asp--------------------
<html>
<head></head>
<body>
<a
href=”jaso.asp?izena=irati”> Klik hemen! </a>
</body>
</html>
----------------formularioa_prozesatu.asp--------------------
<%
Response.write(request.queryString(“izena”))
%>
ServerVariables
Zerbitzariari buruzko aldagaien akzesoa ematen du.
<%
Response.write
(request.ServerVariables(“REMOTE_ADDR”))
Response.write
(request.ServerVariables(“SERVER_SOFTWARE”))
%>
RESPONSE
Bere funtzioa bezeroari (nabigatzaileari)
informazioa bidaltzea da.
Honakoak dira bere ezaugarriak:
Buffer:
Boolean motako (true/false) ezaugarri honek bidali
baino lehen orria bufferrean gorde behar al den adierazten du, hau da, “true”
bada orria erabat kargatu ondoren bidaltzen dio bezeroari, edo bestela
kargatzen doan einean bidaltzen du. Bezeroari edozer bidali baino lehen erabili
beharra dago.
<%
response.buffer = true %>
Expires:
Ezaugarri honek orria zenbat denboran (minututan)
gorde behar den nabigatzailearen cachean adierazten du.
<%
response.expires = 5 %>
ExpiresAbsolute
Zein egun eta ordurarte gorde behar den orria
nabigatzailearen cachean adierazten du.
<% response.expireabsolute = #May 11, 2006 15:30:00# %>
Cookies
Cookie bat sortzen du erabiltzailearren makinan.
Cookie bat textu formatuko artxibo bat da, bertan hainbat informazio gordetzen
delarik orrien personalizaziorako, bilaketerako, etab… Erakusten den adibidean,
“eguna” izeneko cookie bat sortzen da, “date” funtzioaren balioa izango duena
(“date” funtzioak data aktuala itzultzen du).
<%
response.cookies(“eguna”) = date %>
Cookie hau erabiltzaileran sesioa amaitu harte
irauten dute, ez bazaio cookiari iraupena lehendik ezartzen:
<%
response.cookies(“eguna”).expires=”27/1/2006”
%>
Honakoak dira bere metodoak:
End
Metodo honek ASP orriaren prozesua geratzen du eta
prozesatutakoa nabigatzailera bidaltzen.
<%
response.end %>
Flush
Metodo honek bufferraren edukia nabigatzailera
bidaltzen du, betiere Buffer propietatea “true” bada.
<%
response.flush %>
Redirect (url)
Honekin orri aktuala adierazitakora berbideratzen
du.
<%
response.redirect “beste_orri.asp” %>
Write (katea)
Adierazitako katea idazten du nabitzailean, textu
estatiko bat edota HTML etiketa bat izan daitekelarik. “=” sinboloarekin
ordezka daiteke
<%
response.write(“<b> Kaixo! </b>”)
<% = “<b> Kaixo!
</b>”%>
SERVER OBJETUA
Objetu honen bidez, zerbitzariaren funtzioetara
akzeditu daiteke. Honakoak dira bere propietateak:
ScriptTimeout
Orria exekutatzekozai egon behar den gehienezko
denbora determinatzen du. Gehiago igaro ezgero, errorea gertatzen da. Defektuz
90 segundu dira.
<%
Server.ScriptTimeout = 25 %>
Honakoak dira objetuaren metodoak:
CreateObjet
Objetuak sortzea ahalbidetzen du, parametro gisa
bere izena behar duelarik. Objetua sortzean, SET hitz gakoarekin aldagai bati
asignatzen zaio objetua, bere metodo eta propietate guztiak izango dituelarik.
<%
Set DB = Server.CreateObject(“ADODB.Connection”) %>
Execute (path)
ASP orri bat beste baten barruan exekutatzen du.
---------------------nagusia.asp--------------------
<%
Server.Execute(“erantzun.asp”)
%>
---------------------erantzun.asp--------------------
<%
Response.write(“Kaixo!”)
%>
MapPath (path)
Bidalitako artxiboaren ruta osoa itzultzen du.
<%
response.write (Server.MapPath(“orria.asp”) %>
SESSION OBJETUA
Erabiltzaile baten informazioa orrien hartean elkarbanatzeko
balio du. Defektuz orrira sartzean sortzen da eta alde egitean edo 20 minutu
ezer egin gabe igarotean deusezten da. Honakoak dira bere propietateak:
SessionID
Erabiltzailea identifikatzen duen ID bat itzultzen
du. ID hau bakarra da, ezin da aldatu eta zerbitzariak sortzen du.
<%response.write
(“ID = “ & Session.SessionID %>
Timeout
Sesioa deuseztu aurretik zenbat denbora igaro behar
den determinatzen du.
<%
Session.Timeout = 30 %>
Honakoak dira objetuaren metodoak:
Abandon
Sesioa uztea behartzen du, sesio aldagai guztiak
deuseztuz.
<%Session.Abandon
%>
SESIO ALDAGAIAK
Session objetuak duen erabilgarritasun onena
aldagaiak sortu eta orritik orrira mantentzeko aukera ematen duela da.
---------------------a.asp--------------------
<html>
<body>
<%
Session(“Izena”)
= “Leire”
%>
</body>
</html>
---------------------b.asp--------------------
<%
Response.write(Session(“Izena”))
%>
Posted by: galustiza.2006/12/11 15:19:43.268 GMT+1
Tags:
web
asp
programazio
lenguaia
gida
objetuak
| Permalink
| Comments (0)
| References (0)
2006/12/11 13:06:14.085 GMT+1
Egilea: Gorka Alustiza
ASP “Active Server Pages”-en siglak dira,
Microsoften “Internet Information Server”-en osagai gisa komertzializatu den
zerbitzariaren aldeko teknologia bat, web orrien garapenera zuzendutakoa. ASP
teknologiaren hizkuntza, VBScript gidoi lenguaia, Visual Basic-en eratorria da
eta oinarrizko funtzioak antzekoak dira bietan. Beste teknologia baten, PHPren,
aurkari zuzena da.
ASP lenguaiak kodigo exekutagarria HTML-arekin
nahastea ahalbidetzen du. Erabiltzaile batek (edozein nabigatzailek) orri baten eskaera egitean aloxatuta duen
zerbitzariari, berauk ASP kodigoa exekutatuko du, HTML kodigoarekin bat eginez
eta emaitza erabiltzaileari itzuliko dio. Azken honek HTML “purua” jasoko du
soilik, eta ezin izango du jakin zein kodigo den berez HTML eta zein
zerbitzarian ASP exekutatu ondoren sortu dena.
Gure orria Interneteko zerbitzari batera igo
beharrean gure ordenagailuan modu lokalean kudeatu nahi badugu, zerbitzari bat
sortu behar dugu gure PCan ASP kodigo prozesatu ahal izateko, honetarako
“Personal Web Server” edo “Internet Information Server” erabil ditzakegularik.
OINARRIZKO LENGUAIA
ASP kodigoa HTMLan txertatu ahal izateko,
instrukzioak “<%” eta “%>” giltzen hartean egon beharra dute eta orriak
“.asp” luzapena eduki behar du. Txertatu ondorengo kodigoa edozein HTMLz
egindako orritan:
<%
Response.write(“Kaixo!”);
%>
Zerbitzariak behar bezala prozesatu ondoren,
nabigatzaileak honakoa jasoko du soilik:
Kaixo!
Lehen aipatu den bezala, zerbitzariak ASP kodigoa
exekutatu du eta HTML “purua” itzuli du. Ikusi lenguaiaren sintaxia hobeto
ondorengo adibidean:
<%
a
= 12
b
= 4
emaitza
= a + b
response.write(a
& ” eta “ & b & “ren arteko batura “ & emaitza & “ da.”)
‘Programa
honek 12 + 4 kalkulatzen du
%>
Kodigo honetan “a” eta “b” aldagaiei 12 eta 4
balioak eman zaizkie, eta “emaitza”-ri bien baturaren balioa eman zaio.
Ondoren, “response.write” komandoarekin textu bat agertuarazi dugu pantallan,
textu estatikoa eta aldagaien balioa katiatuz, “&” sinboloa erabiliz. Kakots
“’” sinboloaren ondoren doan textua komentario bat da, programa ezertarako
eragingo ez duelarik.
ASPn aldagaien deklarazioa ez da nahiataezkoa,
orriaren hasieran “Option Explicit” hitz gakoa jartzen ez badugu behintzat,
kasu honetan aldagaien deklarazio eza erroretzat joko bait litzateke.
Honetarako “Dim” hitza erabili behar da.
<%
Option Explicit
Dim aldagai
Aldagai=5
Response.write(aldagai)
‘Aldagaiaren balioa
erakusten da
%>
Ikusten denez, aldagaiaren tipoak (zenbakia osoa, hamartarra, textua…) ez du
axola, ASPk berak definitzen ditu.
Aipamen berezia merezi duten aldagaiak “array” edota bektoreak dira. Elementu ugari aldi
berean gorde ditzazkeen aldagai bereziak dira:
<%
lagunKop= 3
lagunak(lagunKop)
lagunak(0)
= “Iker”
lagunak(1)
= “Maider”
lagunak(2)
= “Leire”
lagunak(3)
= “Aitor”
response.write(lagunak(1))
%>
Honakoa itzuliko duelarik:
Maider
“lagunak” bektorea “lagunKop”-en balioaren adina
elementu (hau da, 3) eduki ditzan definitu dugu. Gero, arrayeko “kaxoi”
bakoitzari balio jakin bat eman diogu. Elementu bakoitza lortzeko, arrayaren
izena eta elementuaren posizio adierazten duen zenbakia parentesi hartean jarri
behar da. Ondorengo eran ere defini genezake array bat:
Lagunak
= array(“iker” , “Maider” , “Leire”, “Aitor”)
OPERATZAILEAK
Operatzaileak
eragiketa matematiko zein logikoak (konparaziokoak) egiteko erabiltzen diren
sinbolo bereziak dira. Ondoren, ASPko 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) |
BALDINTZAK
Baldintzak, sententzia baten “egitasunaren” arabera,
akzio jakin batzu egiten uzten duten egiturak dira. Erabilienak, beste
hizkuntzetan bezala, ‘’if … else’’ eta “select…case” dira. Erabiltzeko era
honako da, lehenik “if” hitz gakoa, ondoren aztertu beharreko baldintza, gero
“then” eta azkenik baldintza bete ezgero exekutatu beharreko kodigoa. Bloke hau
ixteko “End if” hitz gakoa erabili behar da.
<%
a =
3
if
a = 3 then
response.write(“Aldagaiaren
balioa 3 da”)
end
if
%>
“Else” altenatibarekin, adierazitako balintza
betetzen ez bada beste kodigo bat exekutatu dezakegu:
<%
a
= 3
if
a = 3 then
response.write(“Aldagaiaren
balioa 3 da”)
else
response.write(“Aldagaiaren
balioa ez da 3”)
end
if
%>
Adierazi diogun baldintza betetzen bada (a = 3)
“Aldagaiaren balioa 3 da” textua idatziko du eta ez bada betetzen, bestea.
Baldintzan berdinketa “=” bat erabili beharrean beste operaratzaile bat erabili
dezakegu: handiagoa “>”, txikiago “<”, ezberdin “!=” edota gorago aipatu
ditugun edozein.
“Select…case” baldintzak berriz programari bi bide
(“egia-gezurra”) baino gehiago eskaintzen dizkio exekutatzeko, adierazitako
sententziak hartzen duen balioaren arabera. “Select case” hitz gakoarekin
irekitzen da blokea, ondoren parentesi hartean aztertu nahi den aldagaia jarri
eta gero, aldagaiak har ditzakeen balio bakoitzarentzat “Case” hitza, kasu
horretako balioa eta bete nahi diren aginduak, azkenenan “end select”-ekin
blokea itxiz:
<%
select
case (aldagai)
case
1:
…
case
2:
…
case
3:
…
End
select
%>
BUKLEAK
Bukle bat, baldintza jakin bat bete arte akzio bat
etengabe exekutatzen duen instrukzio bat da. Bi bukle mota daude, ‘’for’’ eta
‘’while’’.
<%
for
i = 1 to 5
response.write(“Hau
“ & i & “garren aldia da 5etitk”)
next
%>
Era honetan, buklea 5 aldiz errepikatuko da (1etik
5era), “i” aldagaia inkrementatzen doan einean (i=1, 2, 3, 4, 5). Balio
aldaketa kontrola dezakegu “step” hitz gakoarekin:
<%
for
i = 1 to 10 step 2
response.write(“Hau
binaka errepikatzen da”)
next
%>
Horrela, bukle hau ere 5 aldiz errepikatuko da
(i=2, 4, 6, 8, 10). “i”ren hasierako eta bukaerako balioak ere aldatzea daude.
Beste bukle mota bat “while…wend” da, baldintza bat
betetzen den bitartean exekutatuko dena:
<%
i
= 0
while
i<10
response.write(“i
= “ & i)
i
= i + 1
wend
%>
Posted by: galustiza.2006/12/11 13:06:14.085 GMT+1
Tags:
web
asp
euskara
programazio
lenguaia
informatika
gida
| Permalink
| Comments (0)
| References (0)
2006/12/11 12:33:11.864 GMT+1
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"];
?>
Posted by: galustiza.2006/12/11 12:33:11.864 GMT+1
Tags:
web
euskara
programazio
lenguaia
informatika
gida
php
| Permalink
| Comments (0)
| References (0)
Next posts