2014-01-14 5 views
0

Добрый день, У меня есть следующая проблема с командой scandir() в PHP. Мне нужно открыть корневую папку проекта. Концепция довольно проста, я создавая скрипт, который откроет корневую папку и удалит все содержащиеся папки/файлы, которые не соответствуют определенным параметрам. К сожалению для меня это нужно сделать в PHP. До сих пор я работал сPHP checkdir() открыть корневую папку проекта

$dir=scandir('..'.$_SERVER['REQUEST_URI']); 
foreach($dir as $i=>$val){ 
    if(is_dir($dir[$i])){ 
    $tmpDir=scandir('..'.$_SERVER['REQUEST_URI'].$dir[$i]); 
    } 
} 

Но когда я print_r() за $ TmpDir я получаю массив, представляющий структуру родительской папки моего проекта (XAMPP/HTDOCS /). Я считаю, что $ _SERVER ['REQUEST_URI'] не является правильным способом получить имя корневой папки. Важно, чтобы сценарий получал имя корневой папки динамически, так как он должен быть в других проектах. Что я делаю неправильно, и должен ли я делать это по-другому?

ответ

0

Использование __FILE__, затем взрываются на /

В качестве примера: Мой сценарий основан на: /home/cloud/public/index.php

Это будет выход __FILE__.

Explode приведет:

(
    [0] => 
    [1] => home 
    [2] => cloud 
    [3] => public 
    [4] => index.php 
) 

Затем вы можете захватить любую директорию вы хотите, и получить название.

Если вы хотите знать, в какой папке сценарий основан, получить последнюю запись так:

$explode[count($explode)-2]

приведет к:

public 

Полный сценарий, чтобы получить имя папки, в которой находится сценарий:

$explode = explode("/", __FILE__); 
echo $explode[count($explode)-2]; 
0

Y ou может использовать __DIR__, если вы находитесь на PHP 5.3 или dirname(__FILE__), если < 5.3

Смежные вопросы