php显示目录下的文件

php显示目录下的文件

下面的代码是另外一个人的博客里的,网址为:http://blog.youkuaiyun.com/markely/article/details/8805492

参考别人

他写了两段代码,分别如下
1、获取目录下文件,不包括子目录

//获取某目录下所有文件、目录名(不包括子目录下文件、目录名)  
    $handler = opendir($dir);  
    while (($filename = readdir($handler)) !== false) {//务必使用!==,防止目录下出现类似文件名“0”等情况  
        if ($filename != "." && $filename != "..") {  
                $files[] = $filename ;  
           }  
       }  
    }  
    closedir($handler);  

//打印所有文件名  
foreach ($filens as $value) {  
    echo $value."<br />";  
}  

2、获取目录下所有文件,包括子目录

function get_allfiles($path,&$files) {  
    if(is_dir($path)){  
        $dp = dir($path);  
        while ($file = $dp ->read()){  
            if($file !="." && $file !=".."){  
                get_allfiles($path."/".$file, $files);  
            }  
        }  
        $dp ->close();  
    }  
    if(is_file($path)){  
        $files[] =  $path;  
    }  
}  

function get_filenamesbydir($dir){  
    $files =  array();  
    get_allfiles($dir,$files);  
    return $files;  
}  

$filenames = get_filenamesbydir("static/image/");  
//打印所有文件名,包括路径  
foreach ($filenames as $value) {  
    echo $value."<br />";  
}  

自己修改

我对上面的代码做了一些小小的修改,基本是没有变得,就是在显示目录下文件的时候加上链接,代码如下

<?php 
function get_allfiles($path,&$files) {  
    if(is_dir($path)){  
        $dp = dir($path);  
        while ($file = $dp ->read()){  
            if($file !="." && $file !=".."){  
                get_allfiles($path."/".$file, $files);  
            }  
        }  
        $dp ->close();  
    }  
    if(is_file($path)){  
        $files[] =  $path;  
    }  
}  

function get_filenamesbydir($dir){  
    $files =  array();  
    get_allfiles($dir,$files);  
    return $files;  
}  

$filenames = get_filenamesbydir("文件名(第一个不用加/)");  
//打印所有文件名,包括路径  
foreach ($filenames as $value) {  
    echo "<a href=http://hzlearn.xyz/".$value.">".$value."</a>"."<br />";  
}  
?> 

以上,所有
2017/6/14

### 使用 PHP 列出指定目录下的所有文件 为了列出指定目录中的所有文件PHP 提供了几种方法来实现这一功能。以下是几种常用的方法: #### 方法一:使用 `scandir` 函数 这是最简单的方式之一,可以直接获取给定路径下所有的文件文件夹名称。 ```php $directory = "/path/to/directory"; $files = scandir($directory); foreach ($files as $file) { if (is_file("$directory/$file")) { // 这里过滤掉的是文件夹 echo "$file\n"; } } ``` 此代码片段会打印出 `$directory` 下的所有文件名[^1]。 #### 方法二:利用 DirectoryIterator 类 这种方法更为面向对象编程风格友好,并且提供了更多的灵活性。 ```php $iterator = new \DirectoryIterator("/path/to/directory"); foreach ($iterator as $item) { if ($item->isFile()) { echo $item->getFilename() . "\n"; } } ``` 这段代码同样实现了遍历并显示特定目录内的所有文件的功能。 #### 方法三:采用 RecursiveDirectoryIterator 和 IteratorIterator 组合方式 当需要递归地访问子文件夹时,这种方式非常有用。 ```php $dir = new \RecursiveDirectoryIterator("/path/to/directory", FilesystemIterator::SKIP_DOTS); // 跳过当前和父级目录项 $it = new \RecursiveIteratorIterator($dir, RecursiveIteratorIterator::SELF_FIRST); foreach ($it as $fileinfo) { if ($fileinfo->isFile()) { echo $fileinfo->getPathname() . "\n"; // 输出完整的文件路径 } } ``` 上述脚本不仅能够处理顶层目录里的项目,还可以深入其内部的任何层次结构去寻找文件。 通过这些不同的途径可以根据实际需求选择最适合的方式来枚举目标位置中存在的各个条目。值得注意的是,在执行此类操作之前应当确认拥有足够的权限来进行读取以及考虑到性能影响等因素。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值