220 likes | 373 Views
Perpunimi i stringjeve. Programim ne Web Leksion 7. Ne kete leksion. Si te ndahen stringjet Si te merret nje pjese e stringut (substring) nga nje string Si te perdoren indekset numerike te stringjeve Si te zevendesohet nje string me nje string tjeter.
E N D
Perpunimi i stringjeve Programim ne Web Leksion 7 Iralda Mitro
Ne kete leksion • Si tendahenstringjet • Si temerretnjepjese e stringut (substring) nganje string • Si teperdorenindeksetnumeriketestringjeve • Si tezevendesohetnje string me nje string tjeter Iralda Mitro
Marrja e nje pjese te stringut • Per temarrenjepjesetestringutduhettedish se ne ç’vendtestringutndodhetinformacioniqejudeshironi (nje string tjeter). • tedihetindeksiikarakteritte pare dhegjatesia e stringutqejudonitemerrni. Iralda Mitro
Marrja e nje pjese te stringut • Psh: supozojme se keni numrin e sigurise se nje personi (Social Security number) teruajtur ne nje string dhedeshironiqeteperdorni 4 shifrat e funditteketijnumri, sikod PIN. • Supozojme se stringueshteiformatuar ne menyretetilleqetejetethjeshtnjesekuenceprej 9 numrash, pa vijandarese, hapesiraapokarakterendaresetenumrave. Pranesenumrieshte 012-34-5678, airuhet ne njevariabelsi : • $SSN = ‘012345678’; • Kujdes: Ky string duhet te vendoset brenda thonjezave, sepse perndryshe do te humbiste zeron e pare, duke u konsideruar si nje numer. Iralda Mitro
Marrja e nje pjese te stringut • Per temarre 4 karakteret e fundittenjestringuprej 9 karakteresh, perdorimfunksioninsubstr (substring). string substr(string str, intstart [, intlength]) • str- eshtestringufillestar, ngaiciliduamtemarrimnenstring • start - eshteindeksiikarakteritte pare qe do temerret, • length (opsionale) - eshtegjatesia e nenstringutqeduamtemarrim. • Nesenuk e perfshijmeparametrin length, nenstringuqe do tekthehet do teshkojederi ne fund testringut. Iralda Mitro
Marrja e nje pjese te stringut • Pra per temarre 4 karakteret e fundit, perdorim: • $SSN_lastFour = substr($SSN, 5, 4); • 5 nenkuptonqe do tefillojme ne pozicionin me indeks 5, icilieshtekarakteriikatert, duke filluarngafundiistringut. Parametri 4, itregonsubstr() qetenaktheje 4 karaktere. Shenim: Kurmarrimnjenenstringnganje string, kynenstringnukhiqetngastringu. Psh: $SSN do tejeteperseri me 9 karakteredhe do tejeteinjejtisiçishte ne fillim. Ne nukndryshojmevetestringun, porthjeshtpokontrollojme se çfare ka brendastringut. Iralda Mitro
Marrja e nje pjese te stringut • Supozojme se nukjemitesigurtenesenumriisigurise(SSN), i ka tendaregrupet e numrave me ndonjekarakter. Secilangavleredheniet e meposhtmemundtejete e vertete: • $SSN = ‘012345678’; • $SSN = ‘012-34-5678’; • $SSN = ‘012.34.5678’; • Pavaresishtngapjesatjeter a stringut, nese e dime qe 4 karakteret e fundittestringut, jane 4 shifrat e fundittenumrit, mundtemarrim 4 karateret e fundit duke filluarngafundi. Iralda Mitro
Marrja e nje pjese te stringut • Numerimingafundieshteirendesishemsepsenukmundtejemitesigurtenesegjatesia e stringuteshte 9 apo 11, dhe do tekishimproblemenese do tefillonimngafillimi. Ndersanesenumerojmengafundi, nenstringuqe ne kerkojme, do tefillojegjithmone 4 karakterengafundi. • Shembull: Per teshprehurkete ne funksioninsubstr, perdorimnjepozicionfillestarnegativ, ne menyreqet’itregojmefunksionitqetenumerojengafundiistringut ne vend qetefillojengafillimi. • Megjithatekurnumerojmengafundi, karakterii pare eshte –1 (jo 0 apo -0). • $SSN_lastFour = substr($SSN, -4); Iralda Mitro
Marrja e nje pjese te stringut • Vereniqeeshtehequrparametriigjatesise, sepse ne kerkojmetemarrimçdokarakterderi ne fund testringut. • Po tevendosimkete parameter, aipercakton se saigjate do tejetenenstringuqe do tekthehet. Psh: nesegjatesiaeshte 2, nenstringu do tejete me 2 karaktere. $str = ‘abcdef’; echo substr($str, 0, 2); // outputs ‘ab’ Iralda Mitro
Marrja e nje pjese te stringut • Parametriigjatesisemundtejeteedhenegativ, qe do tethote se numerimifillonngafundi. • Prapozicioniperfundimtar per stringun do tejetelength karakterengafundiistringut. Karakteri ne poziocionin e fundittepercaktuar, perfshihet ne nenstring. Perserikarakterii pare ne numeriminngafundieshte -1. $str = ‘abcdef’; echo substr($str, 0, -2); // outputs ‘abcde’ • Ketu, ne vend qegjatesia e stringuttejete 2, nenstringu do tejeteaqigjatesaiduhet per tearriturderi ne 2 pozicionengafundi (pozicioni -2). • Pranenstringufillon ne fillim (0) dheperfundondykaraktereperparafundit. Iralda Mitro
Marrja e nje pjese te stringut KUJDES Meqeindekset e pozicionevetestringutmundtejenetengaterrueshme, eshte mire qetekontrollohetrezultatiithirrjevetefunksionitsubstr me disastringjetendryshme, ne menyreqetesiguroheniqeeshte ne rregull. Nesenukeshte, mundterregulloniparametratqeikaloni. Nesevazhdonipunen pa e testuar, me vone do tejeteshume me e veshtireqetegjendetgabimi. Iralda Mitro
Gjatesia e stringut • Per tegjeturgjatesine e stringutperdorimfunksioninstrlen intstrlen(string str) • echo strlen($str); • Kyfunksionkthennumrin e karakterevetestringut (duke perfshireedhekarakteresihapesiratdhe \n): $str = ‘This is a string.’; $str2 = “Newlines!\nOne\nTwo”; echo strlen($str) . ‘, ‘ . strlen($str2); • Rezultatiiketijkodieshte 17, 17. Vereniqe \n interpretohetsinjekarakterivetem. Prandajdystringjetjane me gjatesitenjejte. Iralda Mitro
Gjetja e nenstringjeve • Le teshohimparaqitjensi string tenjenumritengritur ne njefuqi. Per teinterpretuarnje string tetilleduhettandajmestringun ne dypjese: numridhefuqia: • $numToPower = ‘20^2’; • Kujdessepsekyshembull, edhemundtendryshohet, prastringumundteishte 2^2, 3^5, ose 5^10. Pranuk e dime se kundodhet ^, apokufillonapombaronsecilinumer. • Prandaj ne menyreqetemarrimnumratsinenstringje, me pare duhettepercaktojme se kufillon e kumbaronsecilinumer. • E dime qenumrii pare fillontek 0, dhenumriifundit do tembaroje ne fund testringut. • Ajoçfarenaduhettegjejmeeshte se kumbaronnumrii pare dhekufillonidyti. • Ketedo tapercaktonim me lehtesi, nese do tadinim se kundodhetkarakteri ^. Pranaduhettegjejmepozicionin e ^. Iralda Mitro
Gjetja e nenstringjeve • Per ketenaduhetfunksionistrpos intstrpos(string str, string find [, intstart]) • str- eshtestringu ne tecilinpokerkojme • find - eshtestringuqeduamtegjejme. • start (opsional) - perdoretper tekufizuarkerkimin, psh. nese e dime qe ka 3 pika (.) ne nje string, porduamtegjejmepikene dyte, mundtekerkojme per tepasitekemikaluarpiken e pare. • Per tegjeturkarakterin ^ ne shembullin e meparshemperdorimshprehjen: $caretPos = strpos($numToPower, ‘^’); • Nese$numToPower do teishte 20^2, $caretPos do tejete 2 (indeksii ^ brendastringut) Iralda Mitro
Gjetja e nenstringjeve $numToPower: 2 0 ^ 2 INDEX: [0] [1] [2] [3] String Length: 1 2 3 4 Ne figure shihetqevlera e kthimittefunksionitstrpos(‘20^2’, ‘^’) eshteindeksiipozicionittekarakterit ^. • Tani, per temarredynumratnaduhetvetemteperdorim $caretPos, me anetetecilitmundtegjejmefillimetdhefundet e numrave ne lidhje me ^. • Kujdes! Funksionisubstrnukmerrsiparametranjepozicionfillimidhenjepozicionfundi, pornjepozicionfillimidhenjegjatesi. Per ketenaduhettellogarisimgjatesine e numritte pare. (Ndersagjatesine e numrittedytemundtemos e percaktojmesepseaimbaronatykumbaronstringu.) Iralda Mitro
Gjetja e nenstringjeve • Pozicionii ^ eshte 2, dmth ka 2 karaktereperpara ^, atojane ne pozicionet 0 dhe 1. Nesepozicioni do teishte 3 atehere do tekishte 3 karaktereperpara (ne pozicionet 0, 1, dhe 2). Prandajmundteperdorimpozicionin e ^, sigjatesitenenstringut per numrin e pare. • Ndersanumriidytefillon ne pozicioninqevjenmenjehere pas ^, pra$caretPos+ 1. <?php $numToPower = ‘20^2’; $caretPos = strpos($numToPower, ‘^’); $num = substr($numToPower, 0, $caretPos); $power = substr($numToPower, $caretPos + 1); echo “Raising $num to the power of $power.”; ?> Iralda Mitro
Zevendesimiistringjeve • Njezevendesimstringjeshndodhkurnje string ivecantezevendesohetnganje string tjeterbrendanjestringu me tegjate. • Funksionistr_replacekryennjezevendesimtethjeshtetestringjeve. string str_replace(string find, string replace, string str) • find - eshtestringuqeduhetgjetur • replace - stringuqe do tezevendesojestringunfind • str - eshtestringu me tecilin do tekryhetzevendesimi Shenim • Vereniqestr_replacekthennje string. • Menyrae vetme per temarrerezultatin e zevendesimiteshteqeteruhetkjovlerekthimi (ose ne njevariabelteri, oseperseri ne variablinfillestartekaluarsi parameter str). • Funksionistr_replacenuk e modifikonvetestr. Iralda Mitro
Zevendesimi i stringjeve • Perdorimiifunksionitstr_replaceeshtemjaftidrejtperdrejte. • Le tesupozojmeqestringu $text permbannjeteksttefuturngaperdoruesi, icili do teshfaqet ne web site. • Neseperdoruesi ka shtypur Enter gjatekohesqeposhtyptetekstin, ai do teketefutur \n ose \r\n ne tekst. • Megjithateketokaraktereinjorohenngabrowseri, kuraiinterpretonkodin HTML. • Ne menyreqeteshfaqen ne browser kalimet ne rreshtaterinjduhettezevendesojme \n me nje tag <br>. Me poshtetregohet se simundterealizohetkjo: • $text = str_replace(“\n”, ‘<br>’,$text); Iralda Mitro
Zevendesimi i stringjeve KUJDES • Ndryshimindermjetthonjezavedyshedhetekeeshteshumeirendesishem ne keteshembull. • Karakterinewline (\n) qeikalonsi parameter funksionitstr_replaceduhettejeteinjejte me ate ne $text. Prandajduhettesiguroheniqetevendosni newline ne thonjezadyshe. • Ashtusi me tegjithestringjet e tjerevendosja e tij ne thonjezateke e parandalon PHP qetainterpretoje ate sirreshtteri (newline), porbenqe PHP tainterpretoje ate sinje slash dhenje ‘n’. SHENIM Funksionistr_replace ka njedisavantazh: Ai eshte case-sensitive. Pshnesedonitegjenivetemfjalen Fred eshte ne rregull; pornesedonitegjeni Fred, fred, dhe FRED, do t’juduhetteperdornifunksioninpregi_replace Iralda Mitro
Zevendesimi i stringjeve • Funksionistr_replacemundedhetekryejeshumezevendesime ne tenjejtenkohe. • Secilingatreparametrat e tijmundtepercaktohetsivektor. • Parametrii pare mundtejetenjevektor me disanenstringjetendryshmeqeduhettegjendenbrendastringut. • Kuraigjendet, per tazevendesuar ate perdoretelementikorresponduesivektorit, qekalohetsi parameter idyte. • Neseparametriidyte do teishtenje string ivetem, atehereai string do teperdorej per tegjithazevendesimet. • Kjomundtevazhdoje per sastringjetejene ne vektorin e qekalohetsiparametriitrete, icilimundtejeteosejonjevektor. KUJDES • Nesevektori per parametrin e dyte, ka me pakelemente se ai per parametrin e pare, do teperdorenstringjeboshesistringjezevendesuese per elementetqemungojne. • Nesepozevendesonnishumestringje me shumevlera, sigurohuniqetekeninganjevlere per secilin string qepozevendesoni, sepseperndryshemundt’ifshinistringjet pa izevendesuarato me ndonjegje. Iralda Mitro
Zevendesimi i stringjeve Shembulliimeposhtemtregonzevendesimin e stringjeve “dog”, “cat”, dhe“bird” me njefjaletevetme “animal”: <?php $str = ‘My dog knows a cat that knows the bird that stole my keys.’; $find = Array(‘dog’, ‘cat’, ‘bird’); echo str_replace($find, ‘animal’, $str); ?> Outputiiketijprogramieshte: My animal knows a animal that knows the animal that stole my keys. Iralda Mitro
Zevendesimi i stringjeve Le teprovojmetanitezevendesojmesecilenfjale me nganjefjaletendryshme: <?php $str = ‘My dog knows a cat that knows the ferret that stole my keys.’; $find = Array(‘dog’, ‘cat’, ‘ferret’); $replace = Array(‘wife’, ‘guy’, ‘thief’); echo str_replace($find, $replace, $str); ?> Outputieshte: My wife knows a guy that knows the thief that stole my keys. Iralda Mitro