[英]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.