Relatīvie ceļi PHP
Kā jūs jau zināt, funkcijas file_get_contents
parametrā jāraksta faila nosaukums. Tas tomēr strādā
tikai tad, ja lasāmais fails atrodas
tajā pašā mapē, kurā tiek palaists mūsu skripts.
Ja fails atrodas citur, tad funkcijas parametrā jāieraksta ceļš uz šo failu.
Apskatīsim ar piemēru.
Piemērs
Pieņemsim, ka mums ir šāda failu struktūra:
- index.php
- /directory/
- test.txt
Izlasīsim teksta faila saturu. Lai to izdarītu, papildus faila nosaukumam mums būs jānorāda arī mape, kurā tas atrodas:
<?php
echo file_get_contents('directory/test.txt');
?>
Piemērs
Pieņemsim, ka mums ir šāda failu struktūra:
- /script/
- index.php
- test.txt
Šādā gadījumā mēģinājums nolasīt mūsu failu, norādot ceļā tā nosaukumu, beigsies ar kļūdu:
<?php
echo file_get_contents('test.txt'); // izvadīs kļūdu
?>
Kāpēc tiek izvadīta kļūda? Lieta ir tāda, ka mēs funkcijas parametrā ierakstījām faila nosaukumu. Tas nozīmē, ka lasāmajam failam jāatrodas tajā pašā mapē, kurā tiek palaists skripts.
Tomēr, mūsu lasāmais fails atrodas vienu līmeni augstāk, tas ir, tajā mapē, kurā atrodas skripta mape.
Šādā gadījumā mums ceļā uz failu ir skaidri jānorāda,
ka šis fails jāmeklē vienu līmeni
augstāk. Lai to izdarītu, pirms faila nosaukuma ir
jāraksta ../. Darīsim tā:
<?php
echo file_get_contents('../test.txt'); // fails tiks nolasīts
?>
Piemērs
Pieņemsim, ka mums ir šāda failu struktūra:
- /script/
- index.php
- /directory/
- test.txt
Šajā gadījumā, lasot failu, mēs vispirms izeisim vienu līmeni augstāk, un pēc tam norādīsim ceļu uz mūsu failu attiecībā pret šo līmeni:
<?php
echo file_get_contents('../directory/test.txt');
?>
Piemērs
Pieņemsim, ka mums ir šāda failu struktūra:
- /script/
- /test/
- index.php
- /test/
- /directory/
- test.txt
Šajā gadījumā mums būs jāizej augšup divas reizes:
<?php
echo file_get_contents('../../directory/test.txt');
?>
Praktiskie uzdevumi
Uzrakstiet kodu, kas nolasīs teksta faila saturu:
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Uzrakstiet kodu, kas nolasīs teksta faila saturu:
- /script/
- index.php
- /dir1/
- /dir2/
- test.txt
- /dir2/
Uzrakstiet kodu, kas nolasīs teksta faila saturu:
- /script1/
- /script2/
- index.php
- /script2/
- /dir/
- test.txt
Uzrakstiet kodu, kas nolasīs teksta faila saturu:
- /script1/
- /script2/
- /script3/
- index.php
- /script3/
- /script2/
- /dir1/
- /dir2/
- /dir3/
- test.txt
- /dir3/
- /dir2/