Manipulimi i Skedarëve me PHP

Albforumi

Primus registratum
Manipulimi i Skedarëve me PHP

Në këtë guidë do ju tregoj si ta përdorni PHP për të manipuluar skedarët. Kam parë shpesh në forume përdorues që duan të realizojnë aplikacione të bazuar mbi veprimet me skedarët, por shpesh nuk ja arrijnë sepse thjeshtë nuk i kuptojnë funksionet bazë që PHP ofron për këtë qëllim. Pasi ta ndiqni guidën me kujdes, në përfundim do luani me skedarët
icon_smile.gif
</p>


PHP ofron një set të tërë funksionesh për të punuar me skedarët, por në këtë guidë do të përmendim vetë një pjesë të tyre. Shfletoni manualin për listën e plotë të funksioneve.</p>
Leximi i skedarëve


Leximi i skedarëve në PHP mund të realizohet përmes disa mënyrave. Unë do ju tregoj tre mënyra.</p>


Përmes fread()</p>

&lt;?php
$h = fopen('skedar.txt', 'r'); //gjej skedarin per ta lexuar
/*
lexoje skedarin. fread() kerkon 2 parametra.
parametri 1 eshte risursi qe krijuam me fopen(), pra variavla $h.
Parametri 2 eshte madhesia e skedarit te cilin,
ne e perfitojme permes funksionit filesize().
*/
$s = fread($h, filesize('skedar.txt'));
/*
ne tekstin e marre me fread() rreshtat e ri
jane krijuar me \n (ose \n\r), te cilat html nuk i njeh.
Funksioni nl2br() i kthen rreshtat e ri ne elementet html &lt;br /&gt;
*/
echo nl2br($s);
/*
PHP i mbyll automatikisht lidhjet e hapura, por eshte
praktike e mire ti mbyllni manualisht. Kjo realizohet
permes funksionit fclose()
*/
fclose($h);
?&gt;



Përmes file_get_contents()</p>

&lt;?php
$s = file_get_contents('skedar.txt');
echo nl2br($s);
?&gt;



Përmes file()</p>

&lt;?php
/*
ne ndryshim nga funksionet me siper,
file() kthen nje vektor ku cdo rresht
eshte nje element. Per kete arsye na
duhet ta navigojme vektorin me foreach()
*/
$s = file('skedar.txt');
foreach($s as $v){
echo $v . '&lt;br /&gt;';
}
?&gt;



Funksionet fread() dhe file_get_contents() kryejnë egzaktësisht të njëjtin rol, vetëm se ndryshojnë në qëllim. Nëse doni thjeshtë të lexoni një skedar dhe të përdorni tekstin e tij atëherë file_get_contents() është zgjidhja më e shkurtër. Nëse skedarin doni edhe ta shkruani pasi ta hapni (do flasim më poshtë për këtë), atëherë përdorni fread(). Ndërsa funksioni file() ju hyn në punë për të kthyer çdo rresht të tekstit në një element të vektorit, në mënyrë që ta shfletoni e ta manipuloni. Gjykojeni ju se cila metodë do ju shërbejë më tepër në raste të caktuara.</p>
Shkrimi i Skedarëve


Tani që ju tregova si të lexoni një skedar, besoj se ju vjen natyrshëm kërkesa për ti shkruar ato. Për fat të mirë, ky veprim është i thjeshtë në PHP. Megjithatë do ju tregoj më parë parametrat që merr funksioni fopen(direktoria/skedari, parametri) për të aksesuar skedarët.</p>


‘r’
Hap skedarin vetëm për ta lexuar dhe vendos shënjuesin në fillim.</p>


‘r+’
Hap skedarin për ta lexuar dhe shkruar. Vendos shënjuesin në fillim.</p>


‘w’
Hap skedarin vetëm për ta shkruar, vendos shënjuesin në fillim dhe fshin përmbajtjen e tij. Nëse skedari nuk egziston, tenton ta krijojë.</p>


‘w+’
Hap skedarin për ta lexuar dhe shkruar, vendos shënjuesin në fillim dhe fshin përmbajtjen e tij. Nëse skedari nuk egziston, tenton ta krijojë.</p>


‘a’
Hap skedarin vetëm për ta lexuar dhe vendos shënjuesin në fund. Nëse skedari nuk egziston, tenton ta krijojë.</p>


‘a+’
Hap skedarin për ta lexuar e shkruar dhe vendos shënjuesin në fund. Nëse skedari nuk egziston, tenton ta krijojë.</p>


‘x’
Krijon skedar vetëm për ta shkruar dhe vendos shënjuesin në fillim. Nëse skedari egziston, gjenerohet gabim. Nëse skedari nuk egziston, tenton ta krijojë.</p>


‘x+’
Krijon skedar për ta lexuar e shkruar dhe vendos shënjuesin në fillim. Nëse skedari egziston, gjenerohet gabim. Nëse skedari nuk egziston, tenton ta krijojë.</p>


Si e shikoni, parametrat janë të bollshëm për të lejuar sa më tepër fleksibilitet në manipulimin e skedarëve. Duke përdorur parametrin e duhur mund të kryejme veprime të ndryshme. Po ju tregoj disa skenarë për shkruajtjen e skedarëve.</p>


Shkrimi i një teksti në fund të skedarit</p>

&lt;?php
$h = fopen('skedari.txt', 'a+');
fwrite($h, 'nje tekst ne fund te skedarit');
fclose($h);
?&gt;



Shkrimi i një teksti në fillim të skedarit (karakteret mbi vendosin ato egzistuese)</p>

&lt;?php
$h = fopen('skedari.txt', 'r+');
fwrite($h, 'nje tekst ne fillim te skedarit');
fclose($h);
?&gt;



Shkrimi i një teksti në fillim të skedarit (pa mbi vendosur karakteret egzistuese)</p>

&lt;?php
/*
fillimisht e lexojme permbajtjen e skedarit dhe
ja shtojme tekstin ne fillim variables te krijuar
*/
$s = file_get_contents('skedar.txt');
$s = &quot;nje tekst ne fillim te skedarit \n&quot; . $s;

/*
e hapim skedarin me parametrin 'w' i cili e fshin permbajtjen.
Me pas shkruajme tekstin permes funksionit fwrite()
*/
$h = fopen('skedar.txt', 'w');
fwrite($h, $s);
fclose($h);
?&gt;



Si mënyrë alternative mund të përdorni edhe file_put_contents()</p>

&lt;?php
$s = file_get_contents('skedar.txt');
$s = &quot;nje tekst ne fillim te skedarit \n&quot; . $s;

file_put_contents('skedar.txt', $s);
?&gt;



Besoj se është gjithçka e qartë sepse vetë shembujt janë të thjeshtë dhe ju siguroj që nuk ka skenarë më kompleks. Të gjitha veprimet realizohen me tre funksione dhe disa parametra të cilat nuk keni pse ti fiksoni; mjafton të ktheheni këtu kur t’ju duhen.</p>


Kini parasysh që për të shkruar një skedar duhet që përdoruesi juaj të ketë aksesin e duhur në server. Modifikojani aksesin skedarit përmes CHMOD (shiko më poshtë) ose kontaktoni administratorin e serverit për suport nëse nuk jeni të sigurt çfarë të bëni.</p>
Shënjuesi


Çfarë është ky shënjuesi që përmenda pak më sipër? PHP përdor një shënjues për të shënuar ku ndodh egzekutimi në një skedar të hapur. Deri tani kemi parë se si mund ta vendosim shënjuesin në fillim ose në fund të skedarit përmes parametrave të fopen(). Por si mund ta modifikojmë këtë shënjues sipas dëshirës dhe ta vendosim në pozicione të ndryshme? Këtu na vjen në ndihmë funksioni fseek(). Konsideroni shembullin më poshtë.</p>

&lt;?php
/*
hapim skedarin vetem per ta lexuar.
Shenjuesi ndodhet ne fillim (pozicioni 0)
*/
$h = fopen('skedar.txt', 'r');
//zhvendosim shenjuesin 50 karaktere
fseek($h, 50);

//lexojme 1024 Byte (1 KB) te tekstit
$s = fread($h, 1024);
echo $s;
?&gt;

Funksione ekstra për të punuar me skedarët


Si bonus po ju tregoj shkurtimisht disa funksione për të manipuluar skedarët. Shpresoj t’ju hynë në punë.</p>


copy() – Kopjo një skedar në një destinacion tjetër</p>

&lt;?php
copy('skedari.php', 'direktori/skedari.php');
?&gt;



rename() – Ri-emëro një skedar ose direktori</p>

&lt;?php
rename('direktoria/skedari.html', 'direktoria/index.html');
?&gt;



unlink() – Fshi një skedar</p>

&lt;?php
unlink('skedari.txt');
?&gt;



file_exists() – Kontrollo nëse skedari egziston</p>

&lt;?php
if(file_exists('direktoria/skedari.txt')){
echo 'Skedari egziston';
} else{
echo 'Skedari nuk egziston';
}
?&gt;



chmod() – Ndrysho nivelin e aksesit në skedar</p>

&lt;?php
/*
aksesi vendoset ne format oktal
*/
chmod('skedari.txt', 0755);
?&gt;



Edhe pse guida nuk është tmerrësisht e gjatë, në të ka plot gjëra për të mësuar dhe funksione për të mbajtur mend. Ju këshilloj të krijoni një mjedis lokal për të punuar me PHP dhe të eksperimentoni aty me manipulimin e skedarëve. Pasi të keni punuar disa herë, do shikoni sa të thjeshtë janë.</p>


Mësim të mbarë.</p>


Manipulimi i Skedarëve me PHP &euml;sht&euml; nj&euml; postim nga: Feniksi.Com - Thesari i Njohurive</p>

Per me shume artikuj te ngjashem vizitoni: http://www.feniksi.com/?p=505
 
Top