Path Relatif dalam PHP
Seperti yang sudah Anda ketahui, pada parameter fungsi file_get_contents
harus ditulis nama file. Namun, hal ini hanya bekerja
jika file yang dibaca terletak
di folder yang sama dengan tempat skrip kita dijalankan.
Jika file terletak di tempat lain, maka pada parameter fungsi perlu ditulis path ke file tersebut.
Mari kita lihat contohnya.
Contoh
Misalkan kita memiliki struktur file berikut:
- index.php
- /directory/
- test.txt
Mari kita baca isi file teks tersebut. Untuk itu, selain nama file, kita perlu menentukan juga folder tempat file itu berada:
<?php
echo file_get_contents('directory/test.txt');
?>
Contoh
Misalkan kita memiliki struktur file berikut:
- /script/
- index.php
- test.txt
Dalam kasus ini, upaya membaca file kita, dengan menentukan path hanya nama filenya, akan berakhir dengan error:
<?php
echo file_get_contents('test.txt'); // akan menghasilkan error
?>
Mengapa terjadi error? Masalahnya adalah kita menulis nama file pada parameter fungsi. Ini berarti file yang dibaca harus ditempatkan di folder yang sama dengan file yang dijalankan.
Namun, file yang kita baca berada satu level di atas, yaitu di folder yang berisi folder skrip.
Dalam kasus seperti ini, kita harus secara eksplisit menentukan dalam path
ke file, bahwa file ini perlu dicari satu level
di atas. Untuk itu, sebelum nama file harus
ditulis ../. Mari kita lakukan:
<?php
echo file_get_contents('../test.txt'); // file akan dibaca
?>
Contoh
Misalkan kita memiliki struktur file berikut:
- /script/
- index.php
- /directory/
- test.txt
Dalam kasus ini, saat membaca file, kita pertama-tama akan keluar satu level ke atas, lalu menentukan path ke file kita relatif terhadap level tersebut:
<?php
echo file_get_contents('../directory/test.txt');
?>
Contoh
Misalkan kita memiliki struktur file berikut:
- /script/
- /test/
- index.php
- /test/
- /directory/
- test.txt
Dalam kasus ini, kita perlu keluar ke atas dua kali:
<?php
echo file_get_contents('../../directory/test.txt');
?>
Tugas Praktis
Tuliskan kode yang akan membaca isi file teks:
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Tuliskan kode yang akan membaca isi file teks:
- /script/
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Tuliskan kode yang akan membaca isi file teks:
- /script1/
- /script2/
- index.php
- /script2/
- /dir/
- test.txt
Tuliskan kode yang akan membaca isi file teks:
- /script1/
- /script2/
- /script3/
- index.php
- /script3/
- /script2/
- /dir1/
- /dir2/
- /dir3/
- test.txt
- /dir3/
- /dir2/