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:

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:

index.php<?php
  echo file_get_contents('directory/test.txt');
?>

Nümunə

Tutaq ki, aşağıdakı fayl strukturumuz var:

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:

script/index.php<?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<?php
  echo file_get_contents('../test.txt'); // fayl oxunacaq
?>

Nümunə

Tutaq ki, aşağıdakı fayl strukturumuz var:

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:

script/index.php<?php
  echo file_get_contents('../directory/test.txt');
?>

Nümunə

Tutaq ki, aşağıdakı fayl strukturumuz var:

Bu halda, bizim iki dəfə yuxarı çıxmağa ehtiyacımız olacaq:

script/test/index.php<?php
  echo file_get_contents('../../directory/test.txt');
?>

Praktiki tapşırıqlar

Задание 1

Mətn faylının məzmununu oxuyan kodu yazın:

  • index.php
  • /dir1//dir2/test.txt
Задание 2

Mətn faylının məzmununu oxuyan kodu yazın:

  • /script/index.php
  • /dir1//dir2/test.txt
Задание 3

Mətn faylının məzmununu oxuyan kodu yazın:

  • /script1//script2/index.php
  • /dir/test.txt
Задание 4

Mətn faylının məzmununu oxuyan kodu yazın:

  • /script1//script2//script3/index.php
  • /dir1//dir2//dir3/test.txt