Rrugët Relative në PHP
Siç e dini tashmë, në parametrin e funksionit file_get_contents
duhet të shkruhet emri i skedarit. Megjithatë, kjo funksionon
vetëm në rastin kur skedari i lexuar ndodhet
në të njëjtën dosje ku niset skripti ynë.
Nëse skedari ndodhet diku tjetër, atëherë në parametrin e funksionit duhet të shkruhet rruga për tek ai skedar.
Le ta shohim me një shembull.
Shembull
Supozoni se kemi strukturën e mëposhtme të skedarëve:
- index.php
- /directory/
- test.txt
Le të lexojmë përmbajtjen e skedarit tekst. Për këtë, përveç emrit të skedarit, do të na duhet të përcaktojmë edhe dosjen në të cilën ai ndodhet:
<?php
echo file_get_contents('directory/test.txt');
?>
Shembull
Supozoni se kemi strukturën e mëposhtme të skedarëve:
- /script/
- index.php
- test.txt
Në këtë rast, një përpjekje për të lexuar skedarin tonë duke specifikuar vetëm emrin e tij si rrugë, do të përfundojë me gabim:
<?php
echo file_get_contents('test.txt'); // do të japë gabim
?>
Pse ndodh gabimi? Çështja është se ne kemi shkruar vetëm emrin e skedarit në parametrin e funksionit. Kjo do të thotë se skedari i lexuar duhet të jetë i vendosur në të njëjtën dosje ku ndodhet dhe ai që ekzekutohet.
Megjithatë, skedari ynë i lexuar ndodhet një nivel më lart, domethënë në atë dosje që përmban dosjen me skriptin.
Në këtë rast, ne duhet të tregojmë qartë në rrugën
e skedarit, se ky skedar duhet kërkuar një nivel
më lart. Për këtë, përpara emrit të skedarit duhet
të shkruhet ../. Le ta bëjmë këtë:
<?php
echo file_get_contents('../test.txt'); // skedari do të lexohet
?>
Shembull
Supozoni se kemi strukturën e mëposhtme të skedarëve:
- /script/
- index.php
- /directory/
- test.txt
Në këtë rast, gjatë leximit të skedarit, së pari do të dalim një nivel më lart, e më pas do të specifikojmë rrugën për tek skedari ynë në lidhje me atë nivel:
<?php
echo file_get_contents('../directory/test.txt');
?>
Shembull
Supozoni se kemi strukturën e mëposhtme të skedarëve:
- /script/
- /test/
- index.php
- /test/
- /directory/
- test.txt
Në këtë rast, do të na duhet të dalim më lart dy herë:
<?php
echo file_get_contents('../../directory/test.txt');
?>
Detyra Praktike
Shkruani kodin, i cili do të lexojë përmbajtjen e skedarit tekst:
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Shkruani kodin, i cili do të lexojë përmbajtjen e skedarit tekst:
- /script/
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Shkruani kodin, i cili do të lexojë përmbajtjen e skedarit tekst:
- /script1/
- /script2/
- index.php
- /script2/
- /dir/
- test.txt
Shkruani kodin, i cili do të lexojë përmbajtjen e skedarit tekst:
- /script1/
- /script2/
- /script3/
- index.php
- /script3/
- /script2/
- /dir1/
- /dir2/
- /dir3/
- test.txt
- /dir3/
- /dir2/