3 回答

TA貢獻1886條經驗 獲得超2個贊
$handle = opendir('/tmp');
$arr = array();
while($file = readdir($handle)){
$newpath="/tmp/".$file;
if(is_dir($newpath)) $arr[] = $newpath ;
}
print_r($arr);
我是一樓的,我現在來補充回答你的問題:
1.以上程序 經過我測試,是完全正確的。
2.請確認你的路徑是否正確,是根目錄呢,還是當前目錄,如果是當前目錄(重要)
3.請確認是否有權限讀取目錄
4.中文的情況,只要編碼設置正確即可(我測試時候設置為GBK的)

TA貢獻1780條經驗 獲得超4個贊
函數是返回指定目錄下的所以一級文件名
function find_dir($dirname){
$arr = array();
if( false === $dir = @opendir($dirname) ) return;
while( false !== ($tmpname = readdir($dir)) ){
if($tmpname == "." || $tmpname == "..") continue;
if($tmpname){
$info = pathinfo($tmpname);
$arr[] = $info['filename'];
}
}
return $arr;
}
調用
echo "<pre>";print_r(find_dir("."));

TA貢獻1779條經驗 獲得超6個贊
<?php
function getSubDirs($dir) {
$subdirs = array();
if(!$dh = opendir($dir)) return $subdirs;
while ($f = readdir($dh)) {
if($f =='.' || $f =='..') continue;
$path = $dir.'/'.$f; //如果只要子目錄名, path = $f;
if(is_dir($path)) {
$subdirs[] = $path;
}
}
return $subdirs;
}
$arr = getSubDirs('/tmp');
print_r($arr);
添加回答
舉報