簡體   English   中英

您如何使用PHP在父目錄級別列出目錄?

[英]How do you use PHP to list the directories at the parent directory level?

我正在嘗試使用PHP在父目錄級別創建目錄的動態菜單。 我可以使用以下代碼獲取子目錄:

<?php
    if ($handle = opendir('.')) 
    {
        while (false !== ($file = readdir($handle))) 
        {
            if ($file != "." && $file != "..") 
            {
                if(is_dir($file))
                {
                    echo '<a href="./' . $file . '">' . $file . '</a><br/>';
                }
            }
        }
        closedir($handle);
    }
?>

當我將opendir更改為('..')或('...')時,似乎什么也沒回來。 我想做這樣的事情:

 /
 |-A
 | |-1
 |-B
 | |-1
 | |-2
 | |-3
 |   |-a
 |   |-b
 |-C

如果我在/ B / 2頁中處於下降狀態,則php輸出將顯示父目錄級別列表將具有指向A,B和C的鏈接,而不是諸如“ ..”之類的符號。 如果我在/ A / 1中,則相同的代碼將顯示相同的父級目錄。 如果我在/ B / 3 / a中,則代碼將列出1、2和3。這可能嗎? 如果是這樣,我將如何修改代碼以實現此目的?

is_dir()這樣的函數的filename參數是相對於進程的當前目錄解釋的,該目錄與您提供給opendir() 您需要在目錄前添加:

if (is_dir("../$file")) {

您需要像這樣鏈接它:

<a href="../A/1">A</a>
<a href="../B/1">A</a>
<a href="../C/1">A</a>

事實證明,這是測試是否在目錄上有一行的問題。 請注意,該序列以

if (is_dir('../'))
{

}

答案看起來像這樣。

<?php
if (is_dir('../'))
{
  if ($dirhandle = opendir($dir))
  {
    while (($directory = readdir($dirhandle)) !== false)
    {
        if ($directory != "." && 
            $directory != ".." && 
            $directory != ".DS_Store" && 
            $directory != ".metadata"
            )
        {
            echo  '<a href="../' . $directory . '">'. $directory . '</a><br>' . "\n";    
        }
    }
    closedir($dh);
  }
}
?>

然后,您可以修改的東西你希望有上市如index.php文件列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM