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