PHP列出目录中的目录和文件的几种方法 列出指定目录下所有文件的PHP代码
PHP列出目录中的目录和文件的几种方法
/**      
* PHP中列出目录中的目录和文件的几种方法      
*/       
//兼容PHP4和PHP5的写法        
function getFileList($directory) {        
    $files = array()        
    if(is_dir($directory)) {        
        if($dh = opendir($directory)) {        
            while(($file = readdir($dh)) !== false) {        
                if($file != . && $file != ..) {        
                    $files[] = $file        
                }        
            }    
            closedir($dh)        
        }        
    }        
    return $files        
}        
//PHP5中的简单方法        
function getFileList2($directory) {        
    $files = array()        
    if(is_dir($directory)) {        
        if($files = scandir($directory)) {        
            $files = array_slice($files,2)        
        }        
    }        
    return $files        
}        
//使用PHP5面向对象的写法        
function getFileList3($directory) {        
    $files = array()        
    try {        
        $dir = new DirectoryIterator($directory)        
    } catch (Exception $e) {        
        throw new Exception($directory .  is not readable)        
    }        
    foreach($dir as $file) {        
        if($file->isDot()) continue        
        $files[] = $file->getFileName()        
    }        
    return $files        
}        
//测试代码        
$dir = dirname(__FILE__)        
var_dump(getFileList($dir))        
?>
列出指定目录下所有文件的PHP代码?
function get_files($dir){ $files = array() if(is_dir($dir)){ if($dh = opendir($dir)){ while (($file = readdir($dh)) !== false) { if(!($file == . || $file == ..)){ $file = $dir./.$file if(is_dir($file) && $file != ./. && $file != ./..){ $files = array_merge($files, get_files($file)) } else if(is_file($file)){ $fullpath = $_SERVER[HTTP_REFERER] $fullpath = str_replace(basename($fullpath),"",$fullpath) $fullpath .= substr($file,2) $files[] = $fullpath } } } } } return $files}使用体例$path = ../bakforeach(get_files($path) as $allfile){ echo $allfile.}
PHP 列出当前目录下所有文件(自身别列出来)
$d=dir(".")
echo $d->path.$e
while(false !== ($e= $d->read())) {
echo "$e"."
"
}
$d->close()
?>
PHP列出目录文件生成数组或者JSON
$file_arr = array()//保存文件名
$dir = dir("a1")//目录
while( $file = $dir->read() ){//循环目录
if($file !=".." && $file !="."){//判断不为返回上级
  $file_arr[] = $file
}
}
//数组
print_r($file_arr)
//json
echo "
".json_encode($file_arr)
?>
php 获取目录下的所有文件夹名称
大致思路:
function traverseDir($dir){
if($dir_handle = @opendir($dir)){
while($filename = readdir($dir_handle)){
if($filename != "." && $filename != ".."){
$subFile = $dir.DIRECTORY_SEPARATOR.$filename //要将源目录及子文件相连
if(is_dir($subFile)){ //若子文件是个目录
echo $filename.
//输出该目录名称
traverseDir($subFile) //递归找出下级目录名称
}
}
}
closedir($dir_handle)
}
}
$dirNames = traverseDir("d:/dos") //测试某目录
?>
php中怎么从路径中取出文件名
1、basename("/mnt/img/image01.jpg")函数:得到文件名输出结果为:image01.jpg.
使用 basename($uriString) 我们可以得到一个包含扩展名的文件名;
如果不需要扩展名,也可以使用 basename($uriString, $extString) 过滤扩展名,仅仅返回文件名。
2、echo __FILE__得到当前请求文件的完整路径,输出格式如:/mnt/hgfs/ictsapce/test/index.php
3、dirname() 函数返回路径中的目录部分。
如:
echo dirname("/testweb/home.php")
输出:/testweb
为什么php不能列出ftp里的目录
如果你确定用户密码地址都没错的话,确定PHP有开启ftp扩展
================
你是怎么用的,这样试一下
// set up basic connection
$conn_id = ftp_connect($ftp_server)
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass)
// get the file list for /
$buff = ftp_rawlist($conn_id, /)
// close the connection
ftp_close($conn_id)
// output the buffer
var_dump($buff)
?>