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];
Другие вопросы по тегам