php获取文件夹内所有文件

我想要用php实现一个网页获取一个文件夹 E:\avi里所有后缀是avi和pdf文件的路径,然后把超链接放到网页。
文件夹avi可能是在二级或更高的路径,就是可能E:\avi\1.avi E:\1\x\1.avi 我需要
名字.avi路径用相对路径
希望大神可以给源码

根据多位大神,php获取服务器文件夹所有文件源码

 <!doctype html>
<html>
<head>
<meta charset="GB2312">
<title>php</title>
<link href="/intranet/css/gong.css" rel="stylesheet" type="text/css">
</head>

<body>
<?php
$path = ".";
$ext = ".avi"; //文件后缀名

function get_filetree($path, $ext)
{
$tree = array();
$temp = glob($path . "/*" . $ext);
if($temp) $tree = array_merge($tree, $temp);
foreach (glob($path . "/*", GLOB_ONLYDIR) as $dir) {
$temp = get_filetree($dir, $ext);
if($temp) $tree = array_merge($tree, $temp);
}

return $tree;
}

$list = get_filetree($path, $ext);
foreach($list as $item) {
$fd=substr($item, 1);
echo "<a href=\"/php视频教程".$fd.'">';
echo "".$file = basename($item)."</a>";
echo "<br/>";
}
?>
</body>

显示
php介绍.avi
php基础.avi

这个获取客户端的不行的,

如果是你站内的可以这样:

function my_scandir($dir)

{

$files = array();

if ( $handle = opendir($dir) ) {

while ( ($file = readdir($handle)) !== false )

{

if ( $file != ".." && $file != "." )

{

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

{

$files[$file] = my_scandir($dir . "/" . $file);

}

else

{ if(fileSuffix($file) =='avi' or fileSuffix($file) =='pdf' ){
$files[] =$dir . "/" . $file;

}
}

}

}

closedir($handle);

return $files;

}

}

function fileSuffix($filename){

return strtolower(trim(substr(strrchr($filename, '.'), 1)));

}

上面这个就是遍历某文件夹以及子文件夹文件并且保存在一个数组里的

php 遍历文件夹下的所有文件及文件夹
/**

  • 遍历目录
  • @param string $dir 绝对/相对路径
  • @param string $filter 默认*返回所有文件及文件夹,*.php仅返回php文件,如果$patten为GLOB_BRACE可实现多文件筛选,如*.{php,html},返回php和html文件
  • @param const $patten 默认GLOB_BRACE,可选:GLOB_ONLYDIR,更多参数请参考手册
  • @param string/bool $nocache 防止本次调用的结果缓存上次的结果,如果一个脚本仅调用一次本函数,则不用管,否则得设个值
  • @return array / function globdir($dir, $filter = '', $patten = GLOB_BRACE, $nocache = null) { static $file_arr = array (); isset($nocache) && $file_arr = array (); if (!is_dir($dir)) return; if ($patten == GLOB_ONLYDIR) { $code = 'if (is_dir($file)) {$file_arr[] = $file;globdir($file, "*", GLOB_ONLYDIR);}'; } else { $code = 'is_file($file) ? $file_arr[] = $file : globdir($file,"' . $filter . '",' . $patten . ');'; } array_walk(glob("{$dir}/{$filter}", $patten), create_function('$file, $k, $file_arr', $code), &$file_arr); if ($filter != '*') { array_walk(glob("{$dir}/*", GLOB_ONLYDIR), create_function('$dir,$k,$param', 'list($filter, $patten) = explode("|", $param);globdir($dir, $filter, $patten);'), "{$filter}|{$patten}"); } return $file_arr; } /**
  • getDir()去文件夹列表,getFile()去对应文件夹下面的文件列表,二者的区别在于判断有没有“.”后缀的文件,其他都一样 */ //获取文件目录列表,该方法返回数组 function getDir($dir) { $dirArray[]=NULL; if (false != ($handle = opendir ( $dir ))) { $i=0; while ( false !== ($file = readdir ( $handle )) ) { //去掉"“.”、“..”以及带“.xxx”后缀的文件 if ($file != "." && $file != ".."&&!strpos($file,".")) { $dirArray[$i]=$file; $i++; } } //关闭句柄 closedir ( $handle ); } return $dirArray; } //获取文件列表 function getFile($dir) { $fileArray[]=NULL; if (false != ($handle = opendir ( $dir ))) { $i=0; while ( false !== ($file = readdir ( $handle )) ) { //去掉"“.”、“..”以及带“.xxx”后缀的文件 if ($file != "." && $file != ".."&&strpos($file,".")) { $fileArray[$i]="./imageroot/current/".$file; if($i==100){ break; } $i++; } } //关闭句柄 closedir ( $handle ); } return $fileArray; } //调用方法getDir("./dir")
 function my_scandir($dir){
    $files = array();
    if( $handle = opendir($dir) ) {
        while( ($file = readdir($handle)) !== false ){
            if( $file != ".." && $file != "." ){
                if( is_dir($dir . "/" . $file) ){
                    $files[$file] = my_scandir($dir . "/" . $file);
                }
                else{ 
                    if(fileSuffix($file) =='avi' or fileSuffix($file) =='pdf' ){
                        $files[] =$dir . "/" . $file;
                    }
                }
            }
        }
        closedir($handle);
        return $files;
    }
}
function fileSuffix($filename){
    return strtolower(trim(substr(strrchr($filename, '.'), 1)));
}