2011-02-15 83 views
0

所以我正在爲我的Web服務器設置一個簡單的管理員頁面。我正在嘗試創建一個列出目錄/文件的簡單文件管理器,並允許您更改目錄/編輯文件。儘管我有幾個問題。我的第一個問題是,它只是顯示文件和文件夾,但不會區分它們。就像我想讓文件夾在它們前面有一個/,以便管理員知道它是一個不是文件的文件夾。另外,我在嘗試更改目錄時遇到問題。如果我改變到任何目錄它不會工作。這裏是我當前的代碼:PHP - 目錄查看器

<?php 
echo ' 
<form name="read" method="POST"> 
Directory: <input type="text" name="read" /> 
<input type="submit" value="Go" /> 
</form>'; 
$maindir = "/home/amartin/public_html"; 
$no = "No access"; 
$dir = $_POST['read']; 
if($dir == "/") 
{ 
    echo $no; 
    die(); 
} 
elseif($dir == "/home") 
{ 
    echo $no; 
    die(); 
} 
elseif($dir == "/home/") 
{ 
    echo $no; 
    die(); 
} 
elseif($dir == "/home/amartin") 
{ 
    echo $no; 
    die(); 
} 
elseif($dir == "/home/amartin/") 
{ 
    echo $no; 
    die(); 
} 
else { 
    $dir = $maindir; 
} 
echo "Viewing directory: " . $dir; 
$folders = scandir($dir); 
chdir($dir); 
foreach($folders as $ind_file) 
{ 
echo $ind_file.'<br/>'; 
} 
?> 
+0

is_dir() - 判斷文件名是否是一個目錄(目錄是actully文件) – 2011-02-15 20:46:16

+0

但我究竟怎麼可以在這個代碼中使用is_dir()?我很困惑我會如何做到這一點。 – AustinM 2011-02-15 21:04:32

回答

0

可以使用is_dir功能檢查,如果路徑指向一個目錄。

此外,您還可以使用正則表達式,使檢查更容易,例如:

if (preg_match('~/home(/amartin)?/?~', $dir)) 

您可以getcwd()檢查你當前的工作目錄,並CHDIR改變它。更改目錄時是否使用相對路徑?