Laluan Relatif dalam PHP
Seperti yang anda sudah tahu, parameter fungsi file_get_contents
harus ditulis dengan nama fail. Walau bagaimanapun, ini hanya berfungsi
jika fail yang dibaca terletak
dalam folder yang sama di mana skrip kami dijalankan.
Jika fail terletak di tempat lain, maka parameter fungsi perlu ditulis dengan laluan ke fail tersebut.
Mari kita lihat contoh.
Contoh
Katakan kita mempunyai struktur fail berikut:
- index.php
- /directory/
- test.txt
Mari baca kandungan fail teks. Untuk ini, selain nama fail, kita perlu menentukan folder di mana ia berada:
<?php
echo file_get_contents('directory/test.txt');
?>
Contoh
Katakan kita mempunyai struktur fail berikut:
- /script/
- index.php
- test.txt
Dalam kes ini, percubaan untuk membaca fail kami, dengan menentukan namanya sebagai laluan, akan berakhir dengan ralat:
<?php
echo file_get_contents('test.txt'); // akan menghasilkan ralat
?>
Mengapa ralat berlaku? Masalahnya ialah kita menulis nama fail dalam parameter fungsi. Ini bermakna fail yang dibaca mesti diletakkan dalam folder yang sama dengan fail yang dijalankan.
Walau bagaimanapun, fail yang kita baca berada satu tahap di atas, iaitu dalam folder yang mengandungi folder dengan skrip.
Dalam kes ini, kita mesti nyatakan dengan jelas dalam laluan
ke fail, bahawa fail ini perlu dicari satu tahap
ke atas. Untuk ini, sebelum nama fail, kita harus
menulis ../. Mari lakukan ini:
<?php
echo file_get_contents('../test.txt'); // fail akan dibaca
?>
Contoh
Katakan kita mempunyai struktur fail berikut:
- /script/
- index.php
- /directory/
- test.txt
Dalam kes ini, apabila membaca fail, kita pertama akan keluar satu tahap ke atas, dan kemudian menentukan laluan ke fail kami relatif kepada tahap itu:
<?php
echo file_get_contents('../directory/test.txt');
?>
Contoh
Katakan kita mempunyai struktur fail berikut:
- /script/
- /test/
- index.php
- /test/
- /directory/
- test.txt
Dalam kes ini, kita perlu keluar ke atas dua kali:
<?php
echo file_get_contents('../../directory/test.txt');
?>
Masalah Praktikal
Tulis kod yang akan membaca kandungan fail teks:
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Tulis kod yang akan membaca kandungan fail teks:
- /script/
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Tulis kod yang akan membaca kandungan fail teks:
- /script1/
- /script2/
- index.php
- /script2/
- /dir/
- test.txt
Tulis kod yang akan membaca kandungan fail teks:
- /script1/
- /script2/
- /script3/
- index.php
- /script3/
- /script2/
- /dir1/
- /dir2/
- /dir3/
- test.txt
- /dir3/
- /dir2/