PHPda nisbiy yo'llar
Ma'lumotingizdek, file_get_contents funksiyasining parametriga
fayl nomi yoziladi. Biroq, bu faqat o'qilayotgan fayl
bizning skriptimiz ishga tushiriladigan papkada
yotgan taqdirdagina ishlaydi.
Agar fayl boshqa joyda yotsa, unda funksiya parametriga o'sha faylga yo'l yozish kerak.
Keling, misol orqali ko'rib chiqaylik.
Misol
Faraz qilaylik, bizda quyidagi fayl tuzilmasi mavjud:
- index.php
- /directory/
- test.txt
Keling, matn faylining mazmunini o'qiymiz. Buning uchun fayl nomidan tashqari, uning yotgan papkasini ham ko'rsatishimiz kerak bo'ladi:
<?php
echo file_get_contents('directory/test.txt');
?>
Misol
Faraz qilaylik, bizda quyidagi fayl tuzilmasi mavjud:
- /script/
- index.php
- test.txt
Bunday holatda, faylimizni o'qishga urinish, yo'l sifatida uning nomini ko'rsatgan holda, xatolik bilan tugaydi:
<?php
echo file_get_contents('test.txt'); // xatolik beradi
?>
Nima uchun xatolik beradi? Gap shundaki, biz funksiya parametriga fayl nomini yozdik. Bu shuni anglatadiki, o'qilayotgan fayl ishga tushirilayotgan fayl bilan bir xil papkada joylashgan bo'lishi kerak.
Biroq, bizning o'qilayotgan faylimiz bir daraja yuqorida, ya'ni skript papkasini o'z ichiga olgan papkada joylashgan.
Bunday holatda, biz faylga yo'lda aniq ko'rsatishimiz kerakki,
bu fayl bir daraja yuqorida qidirilishi kerak. Buning uchun fayl nomidan oldin
../ yozish kerak. Buni amalga oshiramiz:
<?php
echo file_get_contents('../test.txt'); // fayl o'qiladi
?>
Misol
Faraz qilaylik, bizda quyidagi fayl tuzilmasi mavjud:
- /script/
- index.php
- /directory/
- test.txt
Bunday holatda, faylni o'qishda biz avval bir darajaga yuqoriga chiqamiz, so'ngra faylimizga yo'lni shu darajaga nisbatan ko'rsatamiz:
<?php
echo file_get_contents('../directory/test.txt');
?>
Misol
Faraz qilaylik, bizda quyidagi fayl tuzilmasi mavjud:
- /script/
- /test/
- index.php
- /test/
- /directory/
- test.txt
Bunday holatda biz ikk marta yuqoriga chiqishimiz kerak bo'ladi:
<?php
echo file_get_contents('../../directory/test.txt');
?>
Amaliy vazifalar
Matn faylining mazmunini o'qiydigan kod yozing:
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Matn faylining mazmunini o'qiydigan kod yozing:
- /script/
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Matn faylining mazmunini o'qiydigan kod yozing:
- /script1/
- /script2/
- index.php
- /script2/
- /dir/
- test.txt
Matn faylining mazmunini o'qiydigan kod yozing:
- /script1/
- /script2/
- /script3/
- index.php
- /script3/
- /script2/
- /dir1/
- /dir2/
- /dir3/
- test.txt
- /dir3/
- /dir2/