PHP да нисбий йўллари
Сиз билганингиздек, file_get_contents
функциясининг параметрига файл номи ёзилади.
Бирок, бу фақат ўқилаётган файл бизнинг скрипт
ишга тушаётган папкада жойлашган бўлсагина
ишлайди.
Агар файл бошқа жойда жойлашган бўлса, у ҳолда функциянинг параметрига шу файлга йўл ёзиш керак.
Келгила, мисолда кўриб чиқайлик.
Мисол
Фарз қилайлик, бизда куйидаги файллар тузилиши мавжуд:
- index.php
- /directory/
- test.txt
Келгила, матн файлининг мазмунини ўқийлик. Бунинг учун файл номи билан бирга унинг жойлашган папкасини ҳам кўрсатиш керак бўлади:
<?php
echo file_get_contents('directory/test.txt');
?>
Мисол
Фарз қилайлик, бизда куйидаги файллар тузилиши мавжуд:
- /script/
- index.php
- test.txt
Бундай ҳолда, файлга йўл сифатида унинг номини кўрсатиб, файлни ўқишга уриниш хато билан тугайди:
<?php
echo file_get_contents('test.txt'); // хато беради
?>
Нега хато берилди? Гap щуки, биз функциянинг параметрига файл номини ёзганмиз. Бу эса ўқилаётган файл ишга тушayтган скрипт билан бир хил папкада жойлашиши керак, деганиди.
Бирок, бизнинг ўқилаётган файл бир даража юқорида, яъни скрипт папкасини ўз ичита олган папкада жойлашган.
Бундай ҳолда, биз файлга йўлда уни юқори даражада
излаш кераклигини аниқ кўрсатишимиз керак.
Бунинг учун файл номидан олдин ../
ёзишимиз керак. Буни амалга оширамиз:
<?php
echo file_get_contents('../test.txt'); // файл ўқилади
?>
Мисол
Фарз қилайлик, бизда куйидаги файллар тузилиши мавжуд:
- /script/
- index.php
- /directory/
- test.txt
Бундай ҳолда, файлни ўқишда биз аввал бир даража юқорига чиқамиз, сўнгра файлга йўлни шу даражага нисбатан кўрсатамиз:
<?php
echo file_get_contents('../directory/test.txt');
?>
Мисол
Фарз қилайлик, бизда куйидаги файллар тузилиши мавжуд:
- /script/
- /test/
- index.php
- /test/
- /directory/
- test.txt
Бундай ҳолда бизга икки марта юқорига чиқиш керак бўлади:
<?php
echo file_get_contents('../../directory/test.txt');
?>
Амалий вазифалар
Матн файлининг мазмунини ўқувчи код ёзинг:
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Матн файлининг мазмунини ўқувчи код ёзинг:
- /script/
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Матн файлининг мазмунини ўқувчи код ёзинг:
- /script1/
- /script2/
- index.php
- /script2/
- /dir/
- test.txt
Матн файлининг мазмунини ўқувчи код ёзинг:
- /script1/
- /script2/
- /script3/
- index.php
- /script3/
- /script2/
- /dir1/
- /dir2/
- /dir3/
- test.txt
- /dir3/
- /dir2/