PHP checkdir() открывает корневую папку проекта
Добрый день, у меня следующая проблема с командой scandir() в PHP. Мне нужно открыть корневую папку проекта. Концепция довольно проста, я разрабатываю скрипт, который откроет корневую папку и сотрет каждую содержащую папку / файл, который не соответствует определенным параметрам. К сожалению для меня это должно быть сделано в PHP. До сих пор я работал с
$dir=scandir('..'.$_SERVER['REQUEST_URI']);
foreach($dir as $i=>$val){
if(is_dir($dir[$i])){
$tmpDir=scandir('..'.$_SERVER['REQUEST_URI'].$dir[$i]);
}
}
Но когда я печатаю $ tmpDir (), я получаю массив, который представляет структуру родительской папки моего проекта (XAMPP/htdocs/). Я считаю, что $_SERVER['REQUEST_URI'] - неправильный способ получения имени корневой папки. Важно, чтобы скрипт динамически получал имя корневой папки, как это должно быть в других проектах. Что я делаю не так и должен ли я делать это по-другому?
2 ответа
Ты можешь использовать __DIR__
если вы используете PHP 5.3, или dirname(__FILE__)
если < 5,3
Использование __FILE__
затем взорваться на /
Как пример: мой сценарий основан на: /home/cloud/public/index.php
Это будет выход __FILE__
,
Взрыв приведет к:
(
[0] =>
[1] => home
[2] => cloud
[3] => public
[4] => index.php
)
Затем вы можете получить любой каталог и получить его имя.
Если вы хотите узнать, в какой папке основан скрипт, получите последнюю запись, подобную этой:
$explode[count($explode)-2]
Приведет к:
public
Полный скрипт для получения имени папки, в которой находится скрипт:
$explode = explode("/", __FILE__);
echo $explode[count($explode)-2];