将文件夹更改为在filemanager上获取

时间:2016-05-09 17:49:02

标签: php fetch file-manager

我遇到了以下问题:我正在处理一个只包含一个index.php文件的文件管理器,该文件从其所在的实际文件夹中获取所有文件和文件夹。

所以,如果我有一个带有filemanager文件的文件夹:

$file = isset($_REQUEST['file']) ? urldecode($_REQUEST['file']) : '.';
if(isset($_GET['do']) && $_GET['do'] == 'list') {
    if (is_dir($file)) {
        $directory = $file;
        $result = array();
        $files = array_diff(scandir($directory), array('.','..'));
        foreach($files as $entry) if($entry !== basename(__FILE__)) {
            $i = $directory . '/' . $entry;
            $stat = stat($i);
            $result[] = array(
                'mtime' => $stat['mtime'],
                'size' => $stat['size'],
                'name' => basename($i),
                'path' => preg_replace('@^\./@', '', $i),
                'ext' => pathinfo($i, PATHINFO_EXTENSION),
                'is_dir' => is_dir($i),
                'is_deleteable' => (!is_dir($i) && is_writable($directory)) || 
                                   (is_dir($i) && is_writable($directory) && is_recursively_deleteable($i)),
                'is_readable' => is_readable($i),
                'is_writable' => is_writable($i),
                'is_executable' => is_executable($i),
            );
        }
    } else {
        err(412,"Not a Directory");
    }
    echo json_encode(array('success' => true, 'is_writable' => is_writable($file), 'results' =>$result));
    exit;
}

filemanager将显示:folder-A,folder-B,file1.php和image.png

问题是我无法更改文件夹以获取其内容,以便能够默认查看文件夹-A的内容。

<div id="map-canvas"></div>
<select id="type" onchange="filterMarkers(this.value);">
    <option value="">BEST FOR (SHOW ALL)</option>
    <option value="BABIES">BEST FOR BABIES</option>
    <option value="TODDLERS">BEST FOR TODDLERS</option>
    <option value="KIDS">BEST FOR KIDS</option>
    <option value="ALL">BEST FOR ALL</option>
</select>

此代码段是其php代码的开头,它负责获取所选文件夹的文件。

关于如何改变它的任何想法?

1 个答案:

答案 0 :(得分:0)

尝试glob函数,它类似于dos中的dir命令, 它将列出当前工作目录中的所有目录和文件,并将它们放在一个数组中,该数组是函数的返回值。