PHP-ի հարաբերական ուղիներ

Ինչպես արդեն գիտեք, file_get_contents ֆունկցիայի պարամետրում պետք է գրել ֆայլի անունը: Սակայն սա աշխատում է միայն այն դեպքում, եթե կարդացվող ֆայլը գտնվում է նույն պանակում, որտեղից գործարկվում է մեր սկրիպտը:

Եթե ֆայլը գտնվում է այլ տեղ, ապա ֆունկցիայի պարամետրում պետք է գրել այդ ֆայլի ուղին:

Դիտարկենք օրինակով:

Օրինակ

Ենթադրենք, ունենք ֆայլերի հետևյալ կառուցվածքը.

Եկեք կարդանք տեքստային ֆայլի պարունակությունը: Դրա համար, բացի ֆայլի անունից, մեզ անհրաժեշտ կլինի նշել նաև այն պանակը, որտեղ այն գտնվում է.

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

Օրինակ

Ենթադրենք, ունենք ֆայլերի հետևյալ կառուցվածքը.

Այս դեպքում մեր ֆայլը կարդալու փորձը՝ որպես ուղի նշելով դրա անունը, կավարտվի սխալով.

script/index.php<?php
  echo file_get_contents('test.txt'); // կտա սխալ
?>

Ինչու՞ է տրվում սխալ: Բանն այն է, որ մենք ֆունկցիայի պարամետրում գրել ենք ֆայլի անունը: Սա նշանակում է, որ կարդացվող ֆայլը պետք է տեղակայված լինի նույն պանակում, ինչ գործարկվող սկրիպտը:

Սակայն, մեր կարդացվող ֆայլը գտնվում է մեկ մակարդակ բարձր, այսինքն՝ այն պանակում, որը պարունակում է սկրիպտով պանակը:

Այս դեպքում մենք պետք է հստակ նշենք ֆայլի ուղիղ, որ այդ ֆայլը պետք է փնտրել մեկ մակարդակ բարձր: Դրա համար ֆայլի անունից առաջ պետք է գրել ../: Եկեք անենք դա.

php<?php
  echo file_get_contents('../test.txt'); // ֆայլը կկարդացվի
?>

Օրինակ

Ենթադրենք, ունենք ֆայլերի հետևյալ կառուցվածքը.

Այս դեպքում ֆայլը կարդալիս մենք նախ կբարձրանանք մեկ մակարդակ բարձր, ապա կնշենք մեր ֆայլի ուղին այդ մակարդակի նկատմամբ.

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

Օրինակ

Ենթադրենք, ունենք ֆայլերի հետևյալ կառուցվածքը.

Այս դեպքում մեզ անհրաժեշտ կլինի բարձրանալ վերև երկու անգամ.

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

Գործնական առաջադրանքներ

Задание 1

Գրեք կոդ, որը կկարդա տեքստային ֆայլի պարունակությունը.

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

Գրեք կոդ, որը կկարդա տեքստային ֆայլի պարունակությունը.

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

Գրեք կոդ, որը կկարդա տեքստային ֆայլի պարունակությունը.

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

Գրեք կոդ, որը կկարդա տեքստային ֆայլի պարունակությունը.

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