Relative stier i PHP

Som du allerede vet, skal filnavnet skrives i parameteren til funksjonen file_get_contents. Dette fungerer imidlertid kun hvis filen som leses ligger i samme mappe som skriptet vårt kjøres fra.

Hvis filen ligger et annet sted, må stien til denne filen skrives i funksjonens parameter.

La oss se på et eksempel.

Eksempel

Anta at vi har følgende filstruktur:

La oss lese innholdet i tekstfilen. For å gjøre dette, trenger vi i tillegg til filnavnet å spesifisere mappen den ligger i:

index.php<?php
  echo file_get_contents('directory/test.txt');
?>

Eksempel

Anta at vi har følgende filstruktur:

I dette tilfellet vil et forsøk på å lese filen vår ved å angi filnavnet som sti, resultere i en feil:

script/index.php<?php
  echo file_get_contents('test.txt'); // vil gi en feil
?>

Hvorfor oppstår det en feil? Grunnen er at vi skrev filnavnet i funksjonsparameteren. Dette betyr at filen som leses skal være plassert i samme mappe som den som kjøres.

Imidlertid er filen vår et nivå høyere, det vil si i mappen som inneholder mappen med skriptet.

I så fall må vi eksplisitt angi i stien til filen at denne filen skal søkes et nivå høyere. For å gjøre dette, skal ../ skrives foran filnavnet. La oss gjøre det:

php<?php
  echo file_get_contents('../test.txt'); // filen vil bli lest
?>

Eksempel

Anta at vi har følgende filstruktur:

I dette tilfellet, når vi leser filen, går vi først opp et nivå, og deretter angir vi stien til filen vår i forhold til dette nivået:

script/index.php<?php
  echo file_get_contents('../directory/test.txt');
?>

Eksempel

Anta at vi har følgende filstruktur:

I dette tilfellet må vi gå opp to nivåer:

script/test/index.php<?php
  echo file_get_contents('../../directory/test.txt');
?>

Praktiske oppgaver

Задание 1

Skriv kode som leser innholdet i tekstfilen:

  • index.php
  • /dir1//dir2/test.txt
Задание 2

Skriv kode som leser innholdet i tekstfilen:

  • /script/index.php
  • /dir1//dir2/test.txt
Задание 3

Skriv kode som leser innholdet i tekstfilen:

  • /script1//script2/index.php
  • /dir/test.txt
Задание 4

Skriv kode som leser innholdet i tekstfilen:

  • /script1//script2//script3/index.php
  • /dir1//dir2//dir3/test.txt