সারসংক্ষেপ
এই উদাহরণটি ধরে নিয়েছে যে আপনি সর্বদা জানেন যে অ্যাপাচি রুট ফোল্ডারটি '/ var / www /' এবং আপনি পরবর্তী ফোল্ডারের পাথ (যেমন '/ var / www / my_website_folder') সন্ধান করার চেষ্টা করছেন। এছাড়াও এটি কোনও স্ক্রিপ্ট বা ওয়েব ব্রাউজার থেকে কাজ করে যার জন্য অতিরিক্ত কোড রয়েছে।
কোড পিএইচপি 7
function getHtmlRootFolder(string $root = '/var/www/') {
// -- try to use DOCUMENT_ROOT first --
$ret = str_replace(' ', '', $_SERVER['DOCUMENT_ROOT']);
$ret = rtrim($ret, '/') . '/';
// -- if doesn't contain root path, find using this file's loc. path --
if (!preg_match("#".$root."#", $ret)) {
$root = rtrim($root, '/') . '/';
$root_arr = explode("/", $root);
$pwd_arr = explode("/", getcwd());
$ret = $root . $pwd_arr[count($root_arr) - 1];
}
return (preg_match("#".$root."#", $ret)) ? rtrim($ret, '/') . '/' : null;
}
উদাহরণ
echo getHtmlRootFolder();
আউটপুট:
/var/www/somedir/
বিবরণ:
মূলত প্রথমে DOCUMENT_ROOT পাওয়ার চেষ্টা করে যদি এতে '/ var / www /' থাকে তবে এটি ব্যবহার করুন, অন্যথায় বর্তমান দির (যা প্রকল্পের অভ্যন্তরে অনেক বেশি বিদ্যমান) পান এবং $ মূল পাথের গণনার উপর ভিত্তি করে পরবর্তী পাথের মান পান। দ্রষ্টব্য: সমস্ত ক্ষেত্রে একটি '/' দিয়ে শেষ হওয়া পথটি নিশ্চিত করতে rtrim বিবৃতি যুক্ত করা হয়েছে। এটি / var / www এর চেয়ে বড় হতে হবে কিনা এটি পরীক্ষা করে না / এটি সম্ভাব্য প্রতিক্রিয়া হিসাবে / var / www / প্রদান করতে পারে।