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:
index.php<?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:
script/index.php<?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<?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:
script/index.php<?php
echo file_get_contents('../directory/test.txt');
?>
Shembull
Supozoni se kemi strukturën e mëposhtme të skedarëve:
- /script//test/index.php
- /directory/test.txt
Në këtë rast, do të na duhet të dalim më lart dy herë:
script/test/index.php<?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
Shkruani kodin, i cili do të lexojë përmbajtjen e skedarit tekst:
- /script/index.php
- /dir1//dir2/test.txt
Shkruani kodin, i cili do të lexojë përmbajtjen e skedarit tekst:
- /script1//script2/index.php
- /dir/test.txt
Shkruani kodin, i cili do të lexojë përmbajtjen e skedarit tekst:
- /script1//script2//script3/index.php
- /dir1//dir2//dir3/test.txt