PHP-də nisbi yollar
Artıq bildiyiniz kimi, file_get_contents funksiyasının parametrində
faylın adı yazılmalıdır. Lakin bu, yalnız oxunan faylın
bizim skriptin işə salındığı qovluqla eyni qovluqda
yerləşdiyi halda işləyir.
Əgər fayl başqa yerdədirsə, onda funksiyanın parametrində həmin fayla olan yolu yazmaq lazımdır.
Nümunə ilə baxaq.
Nümunə
Tutaq ki, aşağıdakı fayl strukturumuz var:
- index.php
- /directory/
- test.txt
Gəlin mətn faylının məzmununu oxuyaq. Bunun üçün faylın adı ilə yanaşı, onun yerləşdiyi qovluğu da göstərməliyik:
<?php
echo file_get_contents('directory/test.txt');
?>
Nümunə
Tutaq ki, aşağıdakı fayl strukturumuz var:
- /script/
- index.php
- test.txt
Belə bir halda, faylı oxumaq cəhdi zamanı yol kimi onun adını göstərmək, xəta ilə nəticələnəcək:
<?php
echo file_get_contents('test.txt'); // xəta verəcək
?>
Niyə xəta verilir? Məsələ ondadır ki, biz funksiyanın parametrinə faylın adını yazmışıq. Bu o deməkdir ki, oxunan fayl işə salınan faylla eyni qovluqda yerləşməlidir.
Lakin, bizim oxunan faylımız bir səviyyə yuxarıda, yəni skripti olan qovluğu ehtiva edən qovluqdadır.
Belə bir halda, fayla olan yolda aydın şəkildə
göstərməliyik ki, bu fayl bir səviyyə yuxarıda axtarılmalıdır.
Bunun üçün faylın adından əvvəl
../ yazmaq lazımdır. Bunu edək:
<?php
echo file_get_contents('../test.txt'); // fayl oxunacaq
?>
Nümunə
Tutaq ki, aşağıdakı fayl strukturumuz var:
- /script/
- index.php
- /directory/
- test.txt
Bu halda, faylı oxuyarkən biz əvvəlcə bir səviyyə yuxarı çıxacaq, sonra isə fayla olan yolu nisbi şəkildə həmin səviyyədən göstərəcəyik:
<?php
echo file_get_contents('../directory/test.txt');
?>
Nümunə
Tutaq ki, aşağıdakı fayl strukturumuz var:
- /script/
- /test/
- index.php
- /test/
- /directory/
- test.txt
Bu halda, bizim iki dəfə yuxarı çıxmağa ehtiyacımız olacaq:
<?php
echo file_get_contents('../../directory/test.txt');
?>
Praktiki tapşırıqlar
Mətn faylının məzmununu oxuyan kodu yazın:
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Mətn faylının məzmununu oxuyan kodu yazın:
- /script/
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Mətn faylının məzmununu oxuyan kodu yazın:
- /script1/
- /script2/
- index.php
- /script2/
- /dir/
- test.txt
Mətn faylının məzmununu oxuyan kodu yazın:
- /script1/
- /script2/
- /script3/
- index.php
- /script3/
- /script2/
- /dir1/
- /dir2/
- /dir3/
- test.txt
- /dir3/
- /dir2/