Relatiewe paaie in PHP
Soos jy reeds weet, moet die lêernaam in die parameter van die funksie file_get_contents
geskryf word. Dit werk eger slegs
indien die lêer wat gelees word in
dieselfde vouer lê as waar ons skript begin hardloop.
Indien die lêer eger elders lê, dan moet die pad na daardie lêer in die parameter van die funksie geskryf word.
Laat ons kyk na 'n voorbeeld.
Voorbeeld
Gestel ons het die volgende lêerstruktuur:
- index.php
- /directory/
- test.txt
Kom ons lees die inhoud van die tekslêer. Om dit te doen, benodig ons, behalwe die lêernaam, ook om die vouer waarin dit lê aan te dui:
<?php
echo file_get_contents('directory/test.txt');
?>
Voorbeeld
Gestel ons het die volgende lêerstruktuur:
- /script/
- index.php
- test.txt
In so 'n geval sal die poging om ons lêer te lees deur slegs sy naam as pad te spesifiseer, in 'n fout eindig:
<?php
echo file_get_contents('test.txt'); // sal 'n fout gee
?>
Hoekom word daar 'n fout gegee? Die feit is dat ons die lêernaam in die funksieparameter geskryf het. Dit beteken dat die lêer wat gelees word in dieselfde vouer moet wees as die een wat uitgevoer word.
Ons lêer wat gelees moet word, is eger een vlak hoër, dit wil sê in die vouer wat die vouer met die skript bevat.
In so 'n geval moet ons eksplisiet in die pad
na die lêer aandui dat hierdie lêer een vlak
hoër gesoek moet word. Om dit te doen moet
../ voor die lêernaam geskryf word.
Laat ons dit doen:
<?php
echo file_get_contents('../test.txt'); // lêer sal gelees word
?>
Voorbeeld
Gestel ons het die volgende lêerstruktuur:
- /script/
- index.php
- /directory/
- test.txt
In hierdie geval, wanneer ons die lêer lees, sal ons eers een vlak op gaan, en dan die pad na ons lêer relatief tot daardie vlak aandui:
<?php
echo file_get_contents('../directory/test.txt');
?>
Voorbeeld
Gestel ons het die volgende lêerstruktuur:
- /script/
- /test/
- index.php
- /test/
- /directory/
- test.txt
In hierdie geval sal ons twee keer op moet gaan:
<?php
echo file_get_contents('../../directory/test.txt');
?>
Praktiese take
Skryf kode wat die inhoud van die tekslêer sal lees:
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Skryf kode wat die inhoud van die tekslêer sal lees:
- /script/
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Skryf kode wat die inhoud van die tekslêer sal lees:
- /script1/
- /script2/
- index.php
- /script2/
- /dir/
- test.txt
Skryf kode wat die inhoud van die tekslêer sal lees:
- /script1/
- /script2/
- /script3/
- index.php
- /script3/
- /script2/
- /dir1/
- /dir2/
- /dir3/
- test.txt
- /dir3/
- /dir2/