Ndodheni ne: Guidat / PHP
Sistem KodiBB dhe Qeshjesh me PHP

Sistem KodiBB dhe Qeshjesh me PHP

Nga më 13 August 2010 në PHP me 8 Komente

Në këtë guidë do ju tregoj hapat për të ndërtuar një sistem që konverton KodetBB në kod HTML dhe Qeshjet (smileys) në ikona. Do t’ju prezantoj me Regular Expressions, fuqinë e tyre për të kërkuar shprehje dhe si t’i përdorim ato në sistemin tonë.

  • Shkarko Kodin
  • Shiko Demon

Ja ku jemi përsëri me një guidë praktike dhe kësaj rradhe me një mini-aplikacion që personalisht e shoh mjaft interesant. Kushdo që ka frekuentuar forume, duhet t’i njohë KodetBB dhe Qeshjet. Në të tilla sisteme, mjafton të shkruash kodin e duhur (psh [b]teksti[/b] për Bold) për t’a formatuar tekstin apo të shkruash simbole qeshjesh për t’i transformuar në ikona. Pikërisht një sistem të tillë do të kodojmë në këtë guidë.

Në sisteme si forume, guestbook, mesazhe apo pothuajse në çdo vend ku përdoruesit i lejohet të shkruajë publikisht, kodi HTML/Javascript fshihet programatikisht për mos t’i lejuar keqbërësit të injektojnë kode të cilët mund të përfitojnë informacione sensitive. Kjo e fundit quhet XSS (Cross Site Scripting) dhe është një vrimë sigurie lehtësisht e mbyllshme në pjesën e madhe të rasteve, por nga ana tjetër shumë e përhapur. Duke i pastruar shkrimet e përdoruesve nga kodi HTML, mënjanojmë vrimën e sigurisë, por pjesa negative është se nuk i lejojmë përdoruesit t’i formatojnë tekstet sipas dëshirës. Duke i bërë tekstet Bold, Italic apo duke vendosur një lidhje, shkrimi bëhet më dinamik dhe e përshkruan veten edhe më mirë. Këtu hyn në lojë sistemi i KodeveBB! Përdoruesëve u lejohet të shkruajnë disa kode formatimi të paracaktuara dhe të limituara që shërbejnë për formatimet bazë, vendosje imazhi, lidhje apo ndërtimin e një liste. Në këtë mënyrë u ofrohen fasilitete që s’mund të përdoren me keqdashësi. Qeshjet dhe transformimi i tyre në ikona është thjeshtë diçka interesante për tu implementuar sepse është më bukur të shohësh një ikonë, se sa 2-pika-kllapë.

Për t’a përmbledhur në pak rrjeshta, në këtë guidë do ju tregoj:

  • Si të ndërtoni një sistem shumë të thjeshtë ku përdoruesit shkruajmë mesazhe, të cilat shfaqen publikisht. Mendojeni si një Guestbook, por pa opsione administrimi.
  • Mundësinë e formatimeve Bold, Italic dhe Underline; futjen e Lidhjeve dhe Citateve (jo citim postimi, por citim fjalësh).
  • Transformimin në ikona të Qeshjeve bazë.

Kujt i shërben kjo guidë

Besoj se guida duhet të jetë e kuptueshme nga çdo nivel programuesish, edhe ata fillestarë. Si standart tashmë i guidave të mia të fundit është kodimi me objekte, por thjeshtësia është mbajtur në minimum dhe s’duhet të jetë problem edhe për ata të mësuar me kodim proçedurial. Pjesa më e komplikuar e guidës është përdorimi i Regular Expressions, të cilat nuk janë edhe aq miqësore me fillestarët. Megjithatë, përdorimi i tyre këtu nuk është i ndërlikuar dhe praktikisht do përdor një tip shprehje për të gjitha veprimet, të cilën do e shpjegoj mirë për mos t’ju lënë fare paqartësi.

Pak Teori

Zakonisht s’më pëlqen të tentoj të shpjegoj me fjalë gjëra që shpjegojnë veten me kod, por dua t’ju jap një ide fillestare të sistemit që do kodojmë. Ideja mbrapa KoditBB dhe Qeshjeve nuk është asgjë tjetër përveç se kërkim dhe zëvendësim. Duke përdorur Regular Expressions, fuqia e të cilëve në kërkimin e teksteve bën magjira, kërkohen KodetBB dhe zëvendësohen me kod të pastër HTML. Pra, nëse ofroj një KodBB [b]teksti[/b] për ta bërë tekstin Bold, mjafton të ndërtoj një Regular Expressions që kërkon për atë shprehje dhe ta zëvendësoj me ekuivalentin HTML, që në këtë rast do ishte <b>teksti</b>. E njëjta logjikë, por edhe me e thjeshtësuar hyn tek Qeshjet, ku do kërkojmë për dy-pika-kllapë (WP m’i zëvendëson Qeshjet me ikona. Ironike!) apo forma të tjera dhe do i zëvendësojmë me imazhe; direkt kod HTML i tipit: <img src=”qeshje.png” />. Pa e vrarë shumë mendjen, sistemi mund të duket i ndërlikuar, por kur e mendon dhe e implementon, zbulon tërësisht të kundërtën.

Tabela e Mesazheve

Para se të fillojmë kodimin, na duhet një tabelë në MySQL për të ruajtur mesazhet. Unë kam ndërtuar një me emrin “kodibb_mesazhet” në të cilën kam vendosur kolonat si në figurën më poshtë.

Tabela e Mesazheve

Kodi HTML

Kodi HTML është pjesa më e thjeshtë, sepse është më e shkurtra. Kam krijuar një formë mesazhi dhe një div mbajtës ku do të shfaq mesazhet.

 HTML |  Kopjo Kodin |? 
1
<form method="post">
2
     <label for="mesazhi">Shkruaj Mesazhin</label>
3
     <textarea name="mesazhi" id="mesazhi"></textarea>
4
     <button type="submit"><img src="images/publikoje.png" /></button>
5
</form>
6
<!-- ketu do te bej validimin dhe shtimin e mesazhit me PHP -->
7
<div id="mbajtesi-mesazheve">
8
     <!-- ketu do te shfaq mesazhet me PHP -->
9
</div>

Forma i dërgon të dhënat me POST dhe përmban një textarea për të shkruajtur mesazhin dhe një buton (të cilin vendosa ta bëj imazh) për t’a dërguar atë. Vini re 2 komentet që kam bërë! Aty ku ndodhen komentet do të shkruaj më pas kod PHP i cili thërret disa funksione. Do i shohim në vijim.

Struktura e Klasës PHP

Si ju thashë në hyrje të guidës, kodi PHP që kam shkruar është bazuar në objekte, specifikisht në një klasë të quajtur Kodi_BB që bën lidhjen me databazën përmes __construct() – funksioni që thërritet automatikisht kur klasa nis – dhe mban 4 funksione të tjera për veprimet që do kryejmë. Më poshtë mund të shihni strukturën e klasës, variablat që do përdor për të dhënat e databazës, tabelës dhe emrat e funksioneve.

 PHP |  Kopjo Kodin |? 
01
<?php
02
class Kodi_BB{
03
     private $db_host = 'localhost';
04
     private $db_emri = 'root';
05
     private $db_fjalekalimi = '';
06
     private $db_databaza = 'test';
07
 
08
     private $tb_mesazhet = 'kodibb_mesazhet';
09
 
10
     function __construct(){
11
          $lidhja = mysql_connect($this->db_host, $this->db_emri, $this->db_fjalekalimi);
12
          mysql_select_db($this->db_databaza);
13
	 }
14
 
15
     public function shtoMesazhin($mesazhi){
16
     }
17
 
18
     private function konvertoKodBB($mesazhi){
19
     }
20
 
21
     private function konvertoQeshjet($mesazhi){
22
     }
23
 
24
     public function listoMesazhet(){
25
     }
26
}
27
?>

Më lini t’ju shpjegoj disa gjera rreth kodit më sipër. Variablat $db_host, $db_emri, $db_fjalekalimi dhe $db_databaza shërbejnë për t’u lidhur me serverin MySQL dhe për të zgjedhur databazën më të cilën do të punojmë. Variabla $tb_mesazhet mban emrin e tabelës së mesazheve, në mënyrë që t’a kem të lehtë t’a ndryshoj nëse tabelës i ndryshoj emrin; pa një variabël do më duhej të modifikoja çdo query të bërë. Në këtë sistem nuk është ndonjë problem, por për sisteme të mëdha është praktikë e mirë. Vini re që variablat i kam deklaruar me fjalën kyçe “private“, e cila i bën këto variabla të aksesueshme vetëm brenda klasës dhe jo jashtë saj apo në një klasë që zgjeron të parën. Në të kundërt, mund të deklarohen si “public” (të aksesueshme nga kudo) dhe “protected” (të aksesueshme vetëm brenda klasës apo në një klasë zgjeruese).

Funksioni __construct(), si ju thashë më sipër, egzekutohet automatikisht kur klasa niset me fjalën kyçe “new“. Quhet Metodë Magjikë dhe në rastin tonë të thjeshtë, shërben më së miri për të kryer lidhjen me databazën.

Në 4 funksionet që përbëjnë logjikën e sistemit, 2 janë ato që na interesojnë më tepër për guidën (unë do i shpjegoj të katërt): konvertoKodBB() dhe konvertoQeshjet(). Këto 2 funksione i kam deklaruar si “private“, që mos të aksesohen jashtë klasës, ndërsa 2 të tjerët si “public” sepse do thërriten nga jashtë klasës për të shtuar mesazhet dhe për ti listuar ato. Logjika e “private“, “public” dhe “protected” është e njëjtë si tek variablat.

Funksioni shtoMesazhin()

Ky funksion bën validimin e mesazhit dhe nëse gjithçka është në rregull, e shton atë në databazë. Merr vetëm një parametër që është vetë mesazhi, i cili vjen nga forma HTML (do ja u tregoj në fund).

 PHP |  Kopjo Kodin |? 
1
<?php
2
if($mesazhi == ''){ return false; }
3
?>

Fillimisht kontrollojmë që mesazhi të mos jetë bosh. Nëse është, kthejmë “false” dhe funksioni përfundon këtu.

 PHP |  Kopjo Kodin |? 
1
<?php
2
$mesazhi = mysql_real_escape_string(strip_tags($mesazhi));
3
$mesazhi = $this->konvertoKodBB($mesazhi);
4
$mesazhi = $this->konvertoQeshjet($mesazhi);
5
?>

Në rreshtin e parë e pastroj mesazhin nga karakteret që mund të thyejnë një query (SQL Injections) me mysql_real_escape_string() dhe i heq të gjitha kodet HTML (XSS) me strip_tags(). Tani kam një mesazh të pastruar dhe përpunimi vazhdon më tej. Në rreshtin e dytë dhe të tretë thërras funksionet e konvertimit të KoditBB dhe të Qeshjeve. Kam shkruar nga një funksion për secilin për ti pasur gjërat në kontroll, por për ato do ju flas me detaje në vijim.

 PHP |  Kopjo Kodin |? 
1
<?php
2
date_default_timezone_set('Europe/Berlin');
3
$data = date('Y-m-d H:i:s');
4
?>

Me këto 2 rreshta vendos datën. Direktiva date_default_timezone_set() përcakton timezone-ën e preferuar dhe unë e vendosa sipas CET (Central European Time – Ora e Europës Qendrore), timezone në të cilën ndodhet Berlini, por ne na intereson që ndodhet Shqipëria. Në këtë mënyrë nuk marr timezone-ën e serverit, por atë që dua unë. Në rreshtin e dytë kam vendosur datën në formatin Y-m-d H:i:s (Viti-Muaji-Dita Ora:Minutat:Sekondat).

 PHP |  Kopjo Kodin |? 
1
<?php
2
$rezultatet = mysql_query("INSERT INTO $this->tb_mesazhet (mesazhi, data) VALUES ('$mesazhi', '$data')");
3
return true;
4
?>

Si përfundim e shtoj mesazhin në databazë me një query INSERT absolutisht shumë të thjeshtë.

Funksioni konvertoKodBB()

Këtu gjërat bëhen interesante sepse arritëm në pjesën kryesore të guidës dhe vetë qëllimin e saj. Ja u shpjegova teorikisht logjikën e konvertimit të KoditBB, por le ta shohim gradualisht me kod.

 PHP |  Kopjo Kodin |? 
1
<?php
2
$trashe = '/[b](.*)[/b]/i';
3
$pjerret = '/[i](.*)[/i]/i';
4
$vije_poshte = '/[u](.*)[/u]/i';
5
$citat = '/[cit](.*)[/cit]/i';
6
$lidhje = '/[url=(.*)](.*)[/url]/i';
7
?>

Këto janë 5 variablat që mbajnë tekstin e formatuar sipas rregullave të Regular Expressions që do kërkojnë KodetBB. Për ata që s’janë marrë asnjëherë me Regular Expressions kodi mund të duket i frikshëm, prandaj dhe do ja u shpjegoj me detaje. Do ju shpjegoj si kam ndërtuar 2 shprehjet, $trashe dhe $lidhje, sepse $pjerret, $vije_poshte dhe $citat janë egzaktësisht si $trashe në logjikë. Le t’i zbërthejmë shprehjet karakter për karakter.

  1. $trashe = ‘//’; => Një regular expression i saktë nis me limituesit dhe slashet (/) janë një limitues komun. Rregullat e kërkimit do të shkruhen brenda limituesëve.
  2. $trashe = ‘//i’; => Pas limituesit të fundit vendos një modifikues “i”, i cili e bën kërkimin case-insensitive (pra, ku madhësia e gërmave nuk ka rëndësi; a = A). Ne duam që [b] dhe [B] të kenë të njëjtin efekt.
  3. $trashe = ‘[b][/b]/i’; => Përcaktoj karakteret rrethuese të KoditBB.
  4. $trashe = ‘/[b][/b]/i’; => Para çdo kllape katrore vendos një backslash () për ti bërë escape. Në Regular Expressions kllapat katrore janë sintaksë që shërbejnë për të përcaktuar një gamë karakteresh. Duke i bërë escape, njihen si karaktere normale kërkimi.
  5. $trashe = ‘/[b](.*)[/b]/i’; => Shprehja e plotë. Pjesa (.*) përfaqëson tekstin që ndodhet brenda KoditBB. Kllapat tregojnë që kemi të bëjmë me një grup karakteresh. Pika (.) tregon çdo karakter të mundshëm; ylli (*) tregon që mund të ketë 0 apo më shumë karaktere (mund të bëhet plus (+) nëse doni 1 apo më shumë karaktere). Duke përcaktuar që duam çdo karakter, të përsëritur 0 apo më shumë herë marrim shprehjen që ndodhet brenda KoditBB. Pikërisht kjo shprehje është rezultati i kërkimit, të cilën do t’a përdorim më pas për zëvendësim.
  1. $lidhje = ‘/[url](.*)[/url]/i’; => Në këtë forma, shprehja e lidhjes është egzaktësisht e njëjtë me të tjerat.
  2. $lidhje = ‘/[url=(.*)](.*)[/url]/i’; => Duke qenë se lidhje do krijohet në formën: [url=adresa.html]kliko ketu[/url], duam që në rezultatin e kërkimit të na ruhet edhe pjesa e adresës. Kam bërë të njëjtin lloj kërkimi, me pikë dhe yll për të zgjedhur çdo karakter të përsëritur 0 ose më shumë herë.

Këto janë bazat absolute të Regular Expressions, por ka shumë më tepër për të mësuar. Ka shumë modifikues, klasa karakteresh, karaktere speciale, gama karakteresh, etj, që duan studim dhe përvojë. Unë e shoh si një fushë në të cilën mund të bëhesh i mirë shumë shpejt, por që t’a quash veten ekspert duhen vite eksperiencë. Mund t’ju duket si një pjesë e programimit që s’do ju hyjë aq shumë në punë në raport me vështirësinë për t’u mësuar, por seriozisht me Regular Expressions mund të bëni magjira dhe kjo s’është e limituar vetëm në PHP. Editorë të ndryshëm (si “vi” apo “emacs” në sisteme Unix-based) ofrojnë kërkim/zëvendësim me Regular Expressions dhe mund të zëvendësoni skedarë të tërë në bazë të rregullave. Përdorimi është i gjerë, fuqia e madhe, por kurba e mësimi paksa e pjerrët.

Me të krijuar shprehjet e kërkimit, kalojmë në shprehjet e zëvendësimit. Si ju thashë në fillim të guidës, KodetBB do zëvendësohen me kod të pastër HTML.

 PHP |  Kopjo Kodin |? 
1
<?php
2
$trashe_zev = '<b>$1</b>';
3
$pjerret_zev = '<i>$1</i>';
4
$vije_poshte_zev = '<u>$1</u>';
5
$citat_zev = '<cite><span>Citat</span>$1</cite>';
6
$lidhje_zev = '<a href="$1" target="_blank">$2</a>';
7
?>

Besoj se jeni familjar me kodet e mësipërme HTML. Ajo që mund t’ju duket e çuditshme është përdorimi i “variablave” $1 dhe $2. Ato janë pikërisht teksti i gjetur në shprehjet që ndërtuam pak më sipër, specifikisht pjesa (.*). Praktikisht, i themi kompiluesit të Regular Expressions që gjej një KodBB, ruaje tekstin brenda tij në një variabël, ndërsa pjesën tjetër zëvendësoje me kod HTML. Tek lidhja kemi 2 variabla ($1 dhe $2) sepse kemi kërkuar për 2 tekste, një si adresë dhe një si përshkrim i lidhjes. Leximi bëhet majtas-djathtas, ku rezultati i parë kthehet i pari, prandaj $1 është adresa, ndërsa $2 është përshkrimi.

 PHP |  Kopjo Kodin |? 
1
<?php
2
$lista_kerk = array($trashe, $pjerret, $vije_poshte, $lidhje, $citat);
3
$lista_zev = array($trashe_zev, $pjerret_zev, $vije_poshte_zev, $lidhje_zev, $citat_zev);
4
?>

Për ti thjeshtësuar punë vetes, krijoj 2 vektorë që mbajnë si elementë variablat e kërkimit dhe zëvendësimit. Si do ju tregoj më poshtë, një zëvendësim me Regular Expressiosn mund të bëhet duke përcaktuar një vektor me elementë, pa pasur nevojë ta egzekutojmë funksionin individualisht për çdo shprehje.

 PHP |  Kopjo Kodin |? 
1
<?php
2
$mesazhi = preg_replace($lista_kerk, $lista_zev, $mesazhi);
3
return $mesazhi;
4
?>

Në rreshtin e parë thërras funksionin preg_replace (PREG = PerlRegularExpressions sepse bazohet në PCRE – Perl Compatible Regular Expressions, një librari e bazuar në sintaksën e Perl), i cili bën zëvendësimin e shprehjeve në mesazh. Kthimi i funksionit është vetë mesazhi i modifikuar. Në fund, e kthej mesazhin me “return”.

Ndoshta ishte pjesë pak e lodhshme për fillestarët në Regular Expressions, por shpresoj t’ju kem hapur oreksin që ti studioni. Bazat janë të thjeshta dhe me to mund të bëni shumë, dhe ndërsa i përdorni, fitoni edhe eksperiencë e gjithçka bëhet më e thjeshtë.

Seksioni tjetër është për zëvendësimin e Qeshjeve, të cilat bëhen egzaktësisht me të njëjtën logjikë dhe nuk duan shumë shpjegim.

Funksioni konvertoQeshjet()

Ky funksion i kthen Qeshjet në ikona duke i zëvendësuar me imazhe. Kërkimi bëhet sërish me Regular Expressions dhe përdoret e njëjta teknikë që ju tregova më sipër. Për të qenë transparent, mund edhe të kisha përdorur str_replace() (ose str_ireplace() për një version case-insensitive) në vend të Regular Expressions dhe të kisha të njëjtin rezultat, por këto të fundit janë shumë më fleksibël dhe qëllimi im ishte t’ju tregoja diçka të ndryshme nga e zakonshmja.

 PHP |  Kopjo Kodin |? 
01
<?php
02
$qeshje = '/:)/';
03
$qeshje_madhe = '/:d/i';
04
$shkel_syrin = '/;)/';
05
$konfuz = '/:s/i';
06
$merzitur = '/:(/';
07
$surprizuar = '/:o/i';
08
 
09
$qeshje_zev = '<img src="images/qeshje.png" alt="(Qesh)" title="Qesh" />';
10
$qeshje_madhe_zev = '<img src="images/qeshje_madhe.png" alt="(Qesh me te madhe)" title="Qesh me te madhe" />';
11
$shkel_syrin_zev = '<img src="images/shkel_syrin.png" alt="(Shkel Syrin)" title="Shkel Syrin" />';
12
$konfuz_zev = '<img src="images/konfuz.png" alt="(Konfuz)" title="Konfuz" />';
13
$merzitur_zev = '<img src="images/merzitur.png" alt="(Merzitur)" title="Merzitur" />';
14
$surprizuar_zev = '<img src="images/surprizuar.png" alt="(Surprizuar)" title="Surprizuar" />';
15
 
16
$lista_kerk = array($qeshje, $qeshje_madhe, $shkel_syrin, $konfuz, $merzitur, $surprizuar);
17
$lista_zev = array($qeshje_zev, $qeshje_madhe_zev, $shkel_syrin_zev, $konfuz_zev, $merzitur_zev, $surprizuar_zev);
18
 
19
$mesazhi = preg_replace($lista_kerk, $lista_zev, $mesazhi);
20
return $mesazhi;
21
?>

Mund t’a vini re menjëherë ngjashmërinë me funksionin e konvertimit të KoditBB. Egzaktësisht e njëjta logjikë!

Funksioni listoMesazhet()

Ky është funksioni që shfaq listën e mesazheve dhe nuk përmban ndonjë gjë të re, prandaj thjeshtë po e komentoj.

 PHP |  Kopjo Kodin |? 
01
<?php
02
//Marr te gjitha rreshtat e mesazheve te renditura sipas dates ne rend zbrites.
03
$rezultatet = mysql_query("SELECT mesazhi, data FROM $this->tb_mesazhet ORDER BY data DESC");
04
//Kontrollojme a ka rreshta te kthyer dhe nese jo, shfaqim mesazhin ne pjesen "else".
05
if(mysql_num_rows($rezultatet) > 0){
06
     //Bejme loop ne te gjithe rreshtat e kthyer.
07
     while($vlerat = mysql_fetch_array($rezultatet)){
08
          //explode() e ndan nje string ne vektore sipas karakterit te percaktuar (hapesire ketu), ndersa
09
          //list() i "pret" elementet ne variabla. Ideja ketu eshte qe formatin e dates Y-m-d H:i:s ta kthej
10
          //ne d-m-Y H:i:s dhe per ta bere kete me duhet ta zberthej daten ne elemente.
11
          list($data, $ora) = explode(' ', $vlerat['data']);
12
          //Me te njejten teknike si me siper, marr elementet e dates te ndare nga "-".
13
          list($viti, $muaji, $dita) = explode('-', $data);
14
          //I bashkoj elementet bashke.
15
          $data = "$dita/$muaji/$viti $ora";
16
 
17
          //Krijoj kod HTML per pjeset specifike te mesazhit.
18
          echo '<div class="mesazhet">';
19
               echo '<span>' . $data . '</span>';
20
               //stripslashes() heq slashet e vendosura nga mysql_real_escape_string.
21
               //nl2br() konverton karakteret newline (nl) ne kod HTML <br />. Kjo eshte sjellje
22
               //e textarea, e cila thyerjeve te rreshtave i vendos newline.
23
               echo '<p>' . stripslashes(nl2br($vlerat['mesazhi'])) . '</p>';
24
          echo '</div>';
25
     }
26
} else{
27
     echo 'Nuk ka asnje mesazh.';
28
}
29
?>

Validimi i Formës

Për ta përfunduar guidën, nuk na mbetet asgjë tjetër përveç validimit të formës dhe shfaqjes së mesazheve. Funksionet e i kemi gati, prandaj thjeshtë i thërrasim. Pas kodit HTML të formës, shkruajmë kodin më poshtë.

 PHP |  Kopjo Kodin |? 
01
<?php
02
include('klasa/kodibb.php');
03
$kodibb = new Kodi_BB;
04
if(isset($_POST['mesazhi'])){
05
     if($kodibb->shtoMesazhin($_POST['mesazhi'])){
06
          echo '<p>Mesazhi u shtua me sukses.</p>';
07
     } else{
08
          echo '<p>Plotesoni me pare mesazhin para se ta shtoni.</p>';
09
     }
10
}
11
?>
12
<div id="mbajtesi-mesazheve">
13
     <?php $kodibb->listoMesazhet(); ?>
14
</div>

Përfundimi

Duke përdorur fuqinë e Regular Expressions për kërkimin e teksteve, krijuam fare thjeshtë një sistem që zëvendëson KodetBB në HTML dhe Qeshjet në imazhe. Tashmë duhet të keni marrë konceptet bazë se çfarë janë Regular Expressions dhe si ndërtohen shprehje e shpresoj të jeni stimuluar t’i thelloni njohuritë. Një sistem i tillë është shumë i lehtë të implementohet në aplikacione egzistuese dhe mund të zgjerohet sipas nevojave, duke shtuar KodeBB dhe Qeshje.

Shpresoj që guida të ketë qenë instruktuese dhe praktike për nevojat tuaja. Mos harroni të shkruani në komente mendime, pyetje apo kritika.

Mësim të mbarë.

Fadion Dashi

Fadioni është prej shumë vitesh i apasionuar pas internetit dhe punon freelance si dizenjues dhe programues per web. Kur nuk është duke punuar, i pëlqen të shkruajë, të fotografojë, të admirojë koleskionin e tij të aparatëve fotografikë manualë dhe të kalojë kohë të bukur me miqtë.

8 Komente

  1. Valtoni says:

    Fadion, guida më pëlqej shum, dhe e testova doli për mrekulli! :D
    Shpresoj që të shkruash guida tjera për PHP.

    Gjith të mirat!

  2. simbol says:

    Mir me pelqen Guida, por do ishte me mir ti shtoje ikonat aty mbi textbox qe te tjeret ti shohin smiles qe mund ti perdorin.

  3. Fadion Dashi says:

    Simbol, qellimi i guides eshte te tregoj si transformohen KodetBB dhe Qeshjet me PHP per sisteme mesazhesh. Ikonat mund te behen pa shume pune me Javascript, ku e vetmja pjese e veshtire eshte “caret position” dhe “caret range” (pozicioni i kursorit dhe karakteret e zgjedhura). Per keto te fundit ka plugine per jQuery dhe nuk ka nevoje te kodohen manualisht (sepse jane komplekse ne fakt).

  4. Ted Reka says:

    Nuk ja kam idene se sa je lodhur po guidat e tuaja FTW!

  5. Niaxo says:

    Pershendetje Fadion (Feniks),

    Kisha nje kerkese: A mund te krijoni nje tutorial per PHP dhe Ajax, integrimin mes njeri tjetrit? – Shpresoj se do ta beni.

    Per sa i perket ketij tutorial-i eshte shum fantastik, ju pergezoj!

  6. Fadion Dashi says:

    Niaxo, ka disa guida ketu tek Feniksi per punimin me PHP dhe AJAX. Dy nga keto, te shkruara kohet e fundit jane: “Projekti Lista e Detyrave me PHP, MySQL dhe jQuery” dhe “Kontrollues i disponueshmerise se emrave me jQuery”. Nese i studion ato guida, do e kuptosh sa i lehte eshte AJAX me jQuery.

  7. Niaxo says:

    Fadion shume faleminderit per pergjigjen tende!

Shkruaj një Koment