PHP-ի հարաբերական ուղիներ
Ինչպես արդեն գիտեք, file_get_contents ֆունկցիայի պարամետրում
պետք է գրել ֆայլի անունը: Սակայն սա աշխատում է
միայն այն դեպքում, եթե կարդացվող ֆայլը գտնվում է
նույն պանակում, որտեղից գործարկվում է մեր սկրիպտը:
Եթե ֆայլը գտնվում է այլ տեղ, ապա ֆունկցիայի պարամետրում պետք է գրել այդ ֆայլի ուղին:
Դիտարկենք օրինակով:
Օրինակ
Ենթադրենք, ունենք ֆայլերի հետևյալ կառուցվածքը.
- index.php
- /directory/test.txt
Եկեք կարդանք տեքստային ֆայլի պարունակությունը: Դրա համար, բացի ֆայլի անունից, մեզ անհրաժեշտ կլինի նշել նաև այն պանակը, որտեղ այն գտնվում է.
index.php<?php
echo file_get_contents('directory/test.txt');
?>
Օրինակ
Ենթադրենք, ունենք ֆայլերի հետևյալ կառուցվածքը.
- /script/index.php
- test.txt
Այս դեպքում մեր ֆայլը կարդալու փորձը՝ որպես ուղի նշելով դրա անունը, կավարտվի սխալով.
script/index.php<?php
echo file_get_contents('test.txt'); // կտա սխալ
?>
Ինչու՞ է տրվում սխալ: Բանն այն է, որ մենք ֆունկցիայի պարամետրում գրել ենք ֆայլի անունը: Սա նշանակում է, որ կարդացվող ֆայլը պետք է տեղակայված լինի նույն պանակում, ինչ գործարկվող սկրիպտը:
Սակայն, մեր կարդացվող ֆայլը գտնվում է մեկ մակարդակ բարձր, այսինքն՝ այն պանակում, որը պարունակում է սկրիպտով պանակը:
Այս դեպքում մենք պետք է հստակ նշենք ֆայլի ուղիղ,
որ այդ ֆայլը պետք է փնտրել մեկ մակարդակ բարձր: Դրա համար ֆայլի անունից առաջ պետք է
գրել ../: Եկեք անենք դա.
php<?php
echo file_get_contents('../test.txt'); // ֆայլը կկարդացվի
?>
Օրինակ
Ենթադրենք, ունենք ֆայլերի հետևյալ կառուցվածքը.
- /script/index.php
- /directory/test.txt
Այս դեպքում ֆայլը կարդալիս մենք նախ կբարձրանանք մեկ մակարդակ բարձր, ապա կնշենք մեր ֆայլի ուղին այդ մակարդակի նկատմամբ.
script/index.php<?php
echo file_get_contents('../directory/test.txt');
?>
Օրինակ
Ենթադրենք, ունենք ֆայլերի հետևյալ կառուցվածքը.
- /script//test/index.php
- /directory/test.txt
Այս դեպքում մեզ անհրաժեշտ կլինի բարձրանալ վերև երկու անգամ.
script/test/index.php<?php
echo file_get_contents('../../directory/test.txt');
?>
Գործնական առաջադրանքներ
Գրեք կոդ, որը կկարդա տեքստային ֆայլի պարունակությունը.
- index.php
- /dir1//dir2/test.txt
Գրեք կոդ, որը կկարդա տեքստային ֆայլի պարունակությունը.
- /script/index.php
- /dir1//dir2/test.txt
Գրեք կոդ, որը կկարդա տեքստային ֆայլի պարունակությունը.
- /script1//script2/index.php
- /dir/test.txt
Գրեք կոդ, որը կկարդա տեքստային ֆայլի պարունակությունը.
- /script1//script2//script3/index.php
- /dir1//dir2//dir3/test.txt